Kernel interface for Wine synchronization primitives
Damjan Jovanovic
damjan.jov at gmail.com
Mon Jan 18 22:21:47 CST 2021
On Mon, Jan 18, 2021 at 2:42 AM Zebediah Figura <zfigura at codeweavers.com>
wrote:
> Hello all,
>
>
> [As a bit of an aside, there are more types of synchronizable objects
> than this, including e.g. processes and threads, which much like pidfd
> are considered signaled when the process exits. However, these objects
> are not thus far a performance concern, and can thus be implemented on
> top of one of the objects above.]
Are you sure about that? What about the interaction between I/O and locks?
Would it allow us to implement this FIXME in NtLockFile() in
dlls/ntdll/unix/file.c:
if (apc_user && !warn++) FIXME("I/O completion on lock not implemented
yet\n");
How are other APIs affected, eg. OVERLAPPED, I/O completion ports?
What about cases where there are multiple handle types combined, eg.
WaitForMultipleObjects() on a network socket, a thread handle, and a lock?
It would seem the application and/or the wineserver needs a way to poll
both fds and locks?
>
>
> That concludes my description and proposal; I'd love to hear your thoughts.
>
>
>From what I remember, a long time ago, Cedega ported (or were working on
porting) wineserver to the kernel for improved performance. Do we have any
idea how that went?
It's an exciting idea :). It would be great to have "ntsync" on FreeBSD
too. Can we please implement it under the BSD licence, or at least dual
GPL/BSD?
> ἔρρωσθε,
> Zebediah Figura
> (she/her)
>
>
>
Damjan Jovanovic
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20210119/a7080368/attachment-0001.htm>
More information about the wine-devel
mailing list