diff options
author | jhorv <38920027+jhorv@users.noreply.github.com> | 2023-05-21 15:28:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-21 21:28:51 +0200 |
commit | 21e88f17f6ebeeae61c3aa95d610ee7adf48d62c (patch) | |
tree | 4fbb7f3bb687984f19c707432fb68796c96c03ea /src/ARMeilleure/Instructions/InstEmitException.cs | |
parent | 5626f2ca1c49342b20772224f956147df6957b5a (diff) |
ServerBase thread safety (#4577)1.1.813
* Add guard against ServerBase.Dispose() being called multiple times. Add reset event to avoid Dispose() being called while the ServerLoop is still running.
* remove unused usings
* rework ServerBase to use one collection each for sessions and ports, and make all accesses thread-safe.
* fix Logger call
* use GetSessionObj(int) instead of using _sessions directly
* move _threadStopped check inside "dispose once" test
* - Replace _threadStopped event with attempt to Join() the ending thread (if that isn't the current thread) instead.
- Use the instance-local _selfProcess and (new) _selfThread variables to avoid suggesting that the current KProcess and KThread could change. Per gdkchan, they can't currently, and this old IPC system will be removed before that changes.
- Re-order Dispose() so that the Interlocked _isDisposed check is the last check before disposing, to increase the likelihood that multiple callers will result in one of them succeeding.
* code style suggestions per AcK77
* add infinite wait for thread termination
Diffstat (limited to 'src/ARMeilleure/Instructions/InstEmitException.cs')
0 files changed, 0 insertions, 0 deletions