Change some of the core data in server.
Use thread locks when doing sensitive things to shared storage.
Change api slightly to simplify messaging logic.
Fix minor bugs in client and server where None might accidentally be accessed.
Move some initialization code to simplify usage and reduce code spread.
Closes #100, #106
Tested with 1 user and 1 counselor which isn't really sufficient to test if locking is working, but I'm going to re-write the whole API this week anyway so I'll reserve testing energy for then.
Checklist
[x] If code changes were made then they have been tested.
[x] This PR fixes an issue.
[ ] This PR adds something new (e.g. new method or parameters).
[x] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[ ] This PR is not a code change (e.g. documentation, README, ...)
Summary
Change some of the core data in server. Use thread locks when doing sensitive things to shared storage. Change api slightly to simplify messaging logic. Fix minor bugs in client and server where None might accidentally be accessed. Move some initialization code to simplify usage and reduce code spread.
Closes #100, #106
Tested with 1 user and 1 counselor which isn't really sufficient to test if locking is working, but I'm going to re-write the whole API this week anyway so I'll reserve testing energy for then.
Checklist