kwsch / SysBot.NET

sys-botbase client for remote control automation of Nintendo Switch consoles.
https://projectpokemon.org/home/files/file/4207-sysbot-automatic-build/
GNU Affero General Public License v3.0
462 stars 270 forks source link

Named EventWaitHandle not supported on Linux #81

Closed evandixon closed 4 years ago

evandixon commented 4 years ago

image

From SysBot.Base/Synchronization/BotSynchronizer.cs:

public readonly EventWaitHandle RemoteBarrier = new EventWaitHandle(false, EventResetMode.AutoReset, "Remote");

An anecdote from Discord suggests the "Remote" parameter can safely be removed, although further investigation is best.

Additional Reading: https://stackoverflow.com/questions/53526755/net-core-2-1-eventwaithandle-not-supported

kwsch commented 4 years ago

The Remote wait was initially intended as a way for people to start/hold the bots via a remote trigger (via Discord command, maybe automated or something).

The default logic (using the regular Barrier) waits for all participants to be at the barrier, then releases them. The Remote barrier would only unleash any waiting bots when the logic was called -- maybe through discord integration or whatever.

In observing the program's use over the past few months, we've noticed the following:

I don't think the RemoteBarrier logic is necessary; it's just vestigial code from early days where we weren't sure which features would be useful.

Should be fine to remove it, and the associated toggle settings.

https://github.com/kwsch/SysBot.NET/blob/42994df0a99e856901d5c98f74551abc997ace08/SysBot.Pokemon/BotTrade/PokeTradeBot.cs#L619-L621 https://github.com/kwsch/SysBot.NET/blob/0cb605dcb2c4460f0e96e70f79b1f06c2ca93502/SysBot.Base/Synchronization/BotSyncOption.cs#L14-L18