Originally posted by Weasel
View Post
Originally posted by Weasel
View Post
xchg to be always safe needs MMU changes so there is hardware level locking around it.
Originally posted by indepe
View Post
To be correct extra burden if not used does not have to be the case either ntsync proposed by the wine developers can be done as a loadable module. Remember this stuff is you call the kernel by syscall or something then the kernel side processes the locking. Of course ntsync not used it never used and when there are no more users it can be unloaded If used record the extra information need.
Doing this as a loadable module means you don't have to have read/write memory between processes to allow the permission bending windows events allows as the kernel module can track this and perform the need tasks here in the correct flow path. Also there are existing flags the scheduler can see in processes to deal with real time priority inversion that wine can reuse in wait for multi case so time slice for something waiting on multi or equal is reallocated from the waiting to one of the processes that could trigger the need events. Priority inversion correction is a kernel mode thing.
Comment