- Fixed the queue memory leak
- Created a critical section for the queue
- I removed the allocator lock when it calls NotifyRelease, I didn't add a case for being able to call NotifyRelease inside the lock because NotifyRelease never receives a pointer to the allocator so I don't think there is a need to still lock while running NotifyRelease.
- Moved process_input to NotifyRelease.
- Also removed the test because it doesn't reproduce the bug reliably specially in the testbot, but I can add it again if it's needed or try to look for a way to make it reliable.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3319#note_41256
I'm not sure how could I test this behavior, right now the test I wrote works but there are times where it doesn't enter into the deadlock.
--
v4: evr: Remove process input handling from streaming thread.
evr: Don't lock allocator in NotifyRelease call.
evr: Create critical section for sample queue.
evr: Release sample queue when streaming ends.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3319
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