* 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
* time: Update for 15.0.0 changes
Last time we did an upgrade on the time service was during 9.x era, it was about time to take back that reverse again!
15.0.0 added a new structure on the shared memory to get steady clock raw timepoints with a granularity in nanoseconds.
This commit implements this new part.
I plan to write a follow up with a bit of refactoring of this ancient part of the emulator.
As always, reverse and work done by your truly.
PS: As a reminder, if this change is reused anywhere else, work should be credited as Ryujinx and not my person.
* time: Do not set setup value to posix time
This should fix local and network clock returning 0 under usage with
shared memory.
This probably fix#2430.
* Address gdkchan's comment
* Fix internal offset not working since changes and ensure that user clock have a valid clock id
* time: Report auto correcting clock and hardcode steady clock unique id
Fix Pokemon Sword Pokejobs for real.
* Address gdkchan's comment
* AM: Stub some service call
Some IPC I have stubbed during private testing and I don't want to deal with them anymore. Nothing more.
* ICommonStateGetter disposable