Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 Jul 2008 07:51:12 +0000
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Sergey Babkin <babkin@verizon.net>
Cc:        arch@freebsd.org
Subject:   Re: Proposal: a revoke() system call 
Message-ID:  <4219.1215417072@critter.freebsd.dk>
In-Reply-To: Your message of "Sun, 06 Jul 2008 18:34:14 -0400." <48714866.906912CC@verizon.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <48714866.906912CC@verizon.net>, Sergey Babkin writes:
>Hi all,
>
>I want to propose a system call with the following functionality:
>
>Syntax:
>
>  int revoke(int fd, int flags)

We already have a revoke(2) system call, so the name will
have to be something different.

>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.

It may be quite a piece of work.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4219.1215417072>