Proposal: a revoke() system call

Sergey Babkin babkin at verizon.net
Mon Jul 7 15:12:43 UTC 2008


>>Rationale:
>>
>>In the multithreaded programs often multiple threads work with the
>>same file descriptor. A particularly typical situation is a reader
>>thread and a writer thread. The reader thread calls read(), gets
>>blocked until it gets more data, then processes the data and
>>continues the loop. Another example of a "reader thread" would be 
>>the main thread of a daemon that accepts the incoming connections
>>and starts new per-connection threads. 
>
>Have you tried to implement the functionality you're asking for ?
>
>You'll have to hunt down into all sorts of protocols, drivers
>and other code to find the threads sleeping on your fd so you can
>wake them.

My thinking has been that if close() wakes them up, then things would be
inherited from there. The thing I didn't know is that apparently in many cases close()
doesn't wake them up.

-SB



More information about the freebsd-arch mailing list