On Thu Aug 3 16:09:52 2023 +0000, Zebediah Figura wrote:
> > I feel that is a bit overkill for a single application, which is using
> the lock in an invalid way anyway.
> Maybe, but I don't like the way this patch basically feels like it's
> hacking around the current behaviour.
> I'd also assert that "invalid" is often not a very meaningful word when
> it comes to Wine. There's documented API, sure, but programs making
> assumptions about internals is commonplace, and something that's pretty
> much always been within Wine's scope to fix.
Yes, what you said makes sense.
> something that's pretty much always been within Wine's scope to fix.
I want to assure you I 100% understand that. After all, this MR is exactly trying to fix such a case.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504#note_41253
> I feel that is a bit overkill for a single application, which is using the lock in an invalid way anyway.
Maybe, but I don't like the way this patch basically feels like it's hacking around the current behaviour.
I'd also assert that "invalid" is often not a very meaningful word when it comes to Wine. There's documented API, sure, but programs making assumptions about internals is commonplace, and something that's pretty much always been within Wine's scope to fix.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504#note_41252
On Thu Aug 3 15:49:48 2023 +0000, Yuxuan Shui wrote:
> I feel that is a bit overkill for a single application, which is using
> the lock in an invalid way anyway.
Had some discussions with @huw and agreed we do need to do this properly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504#note_41250
On Thu Aug 3 15:44:45 2023 +0000, Jinoh Kang wrote:
> > ending up re-using the same mapping because it is created with the
> desktop name.
> Then I think we should unlink the mapping object (but keep it alive),
> and create a *new* mapping object with the same.
> Perhaps this was obvious at first, but there was some complication that
> I failed to notice. Do you mind elaborating if this is the case?
Sure, we should perhaps unlink the mapping object too.
Although that's probably a good thing to do, I'm not sure to see how it makes any difference wrt this `shared_ptr` member, and why we should get rid of this member.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3103#note_41249
v2: Use pointer to const when possible for the desktop_shm_t, make it writable only within SHARED_WRITE_BEGIN/END. Remove the recursive sequence number and the related asserts.
I rebased and pushed the update to quickly apparently, Gitlab UI messed it up, the range-diff is 8bf8fb91603...8cd46e3de73.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3103#note_41246
Instead of creating a new directory object, how about we just make the desktop object itself a namespace and implement `object_ops::lookup_name`?
Instead of
WindowsStations\__wine_desktop_mappings\WinSta0\Default
, we'd open
WindowsStations\WinSta0\Default\__wine_desktop_mapping
.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3103#note_41245
On Thu Aug 3 15:48:53 2023 +0000, Zebediah Figura wrote:
> > @zfigura I think this is unfortunately a case of the application
> looking at the internal state of something that's supposed to be opaque.
> >
> > The application here is specifically creating a `SRWLOCK`,
> manipulating its internal state not through the APIs, then calling
> `ReleaseSRWLockExclusive` and inspecting the result.
> >
> > And if the result is different from what it expects, it opens a
> KeyedEvent for `"\\KernelObjects\\CritSecOutOfMemoryEvent"`, and waits
> on it in a loop.
> >
> > I can't tell you why it's doing that.
> That makes some amount of sense (not that I know why the application
> thinks it needs to mess with lock state manually, but, well, It
> Happens). In that case I suppose the answer is that we probably need to
> change our SRW lock implementation to match Windows'.
I feel that is a bit overkill for a single application, which is using the lock in an invalid way anyway.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504#note_41229