Alan Cox wrote:
On Sat, 2003-02-22 at 22:38, Keith Whitwell wrote:

Running into a problem when killing glthreads with Ctrl-C. Normally this would invoke the release() method and clean up buffers, locks etc. Unfortunately this doesn't work so well with threads - the release method is being called only once despite the 3 processes (threads) that are being killed. Unfortunately the drm module makes use of current->pid extensively, so it really expects each thread to invoke a release() call.


This was discussed here a while ago, and fixed in the kernel DRM for DRM 4.2
at least. There are two methods that matter here

        ->flush is called each time close() occurs
        ->release is called on the final close and disposal of a file

So you get
        open    ->open
        close   ->flush, ->release

        open    ->open
        fork
        close   ->flush
        close   ->flush. ->release

Does flush get called when the process (thread) dies as well? I'm seeing identical behaviour for flush() as release() -- both are being called once despite multiple threads holding copies of the fd.


These threads (rh7.3) each have a unique pid, btw.

Keith



-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to