Commit graph

15 commits

Author SHA1 Message Date
Christopher Willis-Ford
7daf7143fe style(Win): apply automatic code cleanup 2023-06-01 14:52:19 -07:00
Christopher Willis-Ford
f59d16112d chore: convert remaining Debug logging to Trace 2023-01-13 08:21:38 -08:00
Christopher Willis-Ford
907ea9158e chore: add logging to help debug macOS 10/11 issues 2023-01-13 08:21:38 -08:00
Christopher Willis-Ford
eed937fd18 fix: fix DisposedException by removing cancellation token
We really use the socket state to control the session, so there's no
need to also pass a CancellationToken around. The exception was being
caused when an unlucky callback happened after a session was disposed
and the callback tried to get a new token to check cancellation. If the
token source is already disposed, it can't provide a new token.

Also, remove some excessive logging and add more exception logging.
2023-01-13 08:21:37 -08:00
Christopher Willis-Ford
5bae1ea319 fix(Mac): fix Safari, especially Link->Client notifications 2023-01-13 08:21:37 -08:00
Christopher Willis-Ford
72a0308e9c Mac: fix symbols being optimized out
Using "SdkOnly" instead of "Full" doesn't increase the app size by even
1MB, and it no longer leads to seemingly random crashes due to some part
of the code being optimized out.
2023-01-13 08:21:37 -08:00
Christopher Willis-Ford
953144379d Mac: misc reliability improvements
An `EventAwaiter` timeout now throws a `TimeoutException` instead of a
`TaskCanceledException`.

Disconnecting a micro:bit while subscribed for change notifications was
causing an exception because a notification was being triggered after
the socket closed. Fixing that led to an attempt to close the socket
after it was closed and set to `null`. That one was solved with a null
check.

For BT, connection is still not reliable but it's a step in the right
direction... I think. The socket lock is now held while opening the
RFCOMM channel, which is an awful long time to hold a lock, but really
no other thread should be messing with the socket during that time so I
guess it's the right thing to do. I also added debug printouts on the
RFCOMM event delegate.
2023-01-13 08:21:37 -08:00
Christopher Willis-Ford
db051ddf65 Mac: add status bar item 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
bddf0dc50f clean up JsonRpc2Exception a bit 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
7ec18de421 share BTSession's address privacy implementation with BLESession 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
0b0b8802a8 add an extension to lock a SemaphoreSlim with 'using' 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
ac5e4a4431 close BLE session if the device disconnects 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
172fc2c534 switch to Fleck for WebSockets 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
2c9e4c600a fixed usings and namespaces 2023-01-13 08:21:36 -08:00
Christopher Willis-Ford
2897e2d16f begin splitting scratch-link into scratch-link-{common,mac}
Note that this currently doesn't build since the files have not yet been
adapted to the new framework.
2023-01-13 08:21:36 -08:00
Renamed from scratch-link/Session.cs (Browse further)