Windows NT synchronization primitives for Linux
Windows NT synchronization primitives for Linux
Posted Feb 21, 2024 2:00 UTC (Wed) by itsmycpu (guest, #139639)In reply to: Windows NT synchronization primitives for Linux by pizza
Parent article: Windows NT synchronization primitives for Linux
At about 14:06.
In my view the best slide of that presentation is the one mentioning "fast user-space RPC" as a "half-baked idea", called an "interesting idea".
(Such concepts exist for a long time in all kind of variations. Some people associate the concept with "actors" in a multi-threaded context, or "asynchronous message queues". I'm using something that could go by that label (though so far within a single process, between threads) for many years, and it works very well, using lock-free queues. As a low-level implementation, execution time in a loop is a small single-digit number of nanoseconds.)
Posted Feb 21, 2024 3:04 UTC (Wed)
by pizza (subscriber, #46)
[Link] (1 responses)
Ah, so this mythical other approach is just that; no implementation much less any benchmarks showing it to be just as good or better than the kernel-based approach that exists _today_.
> I'm using something that could go by that label (though so far within a single process, between threads) for many years, and it works very well, using lock-free queues
...Um, you do realize that Wine needs to synchronize between multiple independent heayweight *processes* ?
Posted Feb 21, 2024 3:23 UTC (Wed)
by itsmycpu (guest, #139639)
[Link]
There are several existing approaches that have the same performance, just the existing ones also have shortcomings which that approach would not have.
> ...Um, you do realize that Wine needs to synchronize between multiple independent heayweight *processes* ?
Yes, as indicated I do, however I wonder what you mean with a "heavyweight" process?
Shared memory is as fast between processes (I measured it), and can be read-protected or write-protected for specific processes.
Windows NT synchronization primitives for Linux
Windows NT synchronization primitives for Linux