cvs commit: src/sys/kern tty_pty.c
mb at imp.ch
Fri Sep 29 14:09:55 PDT 2006
> I think I found the bug while looking for problems near vgonel(). We're
> nowhere near ready to free devices in in last-close, since vgonel() doesn't
> do anything to evict processes from device functions before it forces the
> device closed. Drivers must be aware of the problem. The tty driver
> already is. See the comments about t_gen near tty_close() and ttysleep().
> t_gen must live across close so that any processes in device functions can
> check it after they wake up, and the tty and device data structures must
> live across last- close to hold t_gen and anything else needed for the
> device functions to return. Sleeping device functions normally wake up
> after last-close returns.
So what can we do to destroy devices after last close ? Mark them with some
flag and handle this during device operations ?
More information about the cvs-src