1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-11-09 00:14:57 +00:00
Commit graph

29 commits

Author SHA1 Message Date
diamondburned 6c332ac145 {Voice,}Gateway: Fixed various race conditions
This commit fixes race conditions in both package voice, package
voicegateway and package gateway.

Originally, several race conditions exist when both the user's and the
pacemaker's goroutines both want to do several things to the websocket
connection. For example, the user's goroutine could be writing, and the
pacemaker's goroutine could trigger a reconnection. This is racey.

This issue is partially fixed by removing the pacer loop from package
heart and combining the ticker into the event (pacemaker) loop itself.

Technically, a race condition could still be triggered with care, but
the API itself never guaranteed any of those. As events are handled
using an internal loop into a channel, a race condition will not be
triggered just by handling events and writing to the websocket.
2020-10-22 10:47:27 -07:00
diamondburned (Forefront) 9ce0620652 Cleaned up go.mod 2020-06-01 13:52:15 -07:00
diamondburned (Forefront) bafeb1082a CI: Added Dismock, better coverage parsing 2020-05-30 14:32:23 -07:00
diamondburned (Forefront) f22d6eaa9f Utils/API: Replaced semaphore-mutex API 2020-05-06 00:40:31 -07:00
diamondburned (Forefront) e07784a03a Utils: Swapped go-csync with /x/sync/semaphore 2020-05-06 00:32:21 -07:00
diamondburned (Forefront) 450a112878 Utils: Removed go-deadlock dependency meant to be used for debugging 2020-05-06 00:20:25 -07:00
diamondburned (Forefront) e9d81f67eb Cleaned up go.sum 2020-05-03 18:36:04 -07:00
diamondburned (Forefront) 10bdb19f68 Added a root package to allow go get 2020-04-27 11:41:28 -07:00
diamondburned (Forefront) c1ace1829b API: Added an integration test for React 2020-04-26 17:27:08 -07:00
diamondburned (Forefront) 3005c7b44a Voice: Separated UDP and WS into packages, added io.Writer API 2020-04-24 19:36:33 -07:00
Matthew Penner 1e5e0ac38a Update go.sum, add voice/README.md with basic information on how the voice package functions 2020-04-21 16:37:22 -06:00
diamondburned (Forefront) 9f5c2ac958 Gateway: Switched to gorilla/websocket, fixes #11 2020-04-06 13:27:29 -07:00
diamondburned (Forefront) b5f7af70f3 Gateway: Changed UpdateStatus to be more valid 2020-03-31 20:45:56 -07:00
diamondburned (Forefront) b59d9bfed7 Arikawa: Updated /x/errors; Gateway: Added TestInvalidToken 2020-03-16 18:29:23 -07:00
diamondburned (Forefront) f33dc2ee75 API: Fixed major rate limiters not working 2020-02-09 12:54:16 -08:00
diamondburned (Forefront) 85b793a1a7 Fixed some race conditions 2020-02-02 14:12:54 -08:00
diamondburned (Forefront) 6255d1d1d5 Tidied go.mod 2020-01-25 22:15:49 -08:00
diamondburned (Forefront) afe1b4621f Bot: parser changed to a slimmed down version 2020-01-25 22:15:39 -08:00
diamondburned (Forefront) f8a1bfe4bc Tidied go.mod 2020-01-25 21:58:15 -08:00
diamondburned (Forefront) 0751f45bdb Bot: changed to a better command parser 2020-01-25 21:58:06 -08:00
diamondburned (Forefront) 6fb68be631 More Reaction API changes 2020-01-22 21:13:53 -08:00
diamondburned (Forefront) 73f5cdec9e Added HTTP retry, fixed async JSON body corrupting 2020-01-20 11:28:55 -08:00
diamondburned (Forefront) b2171d8784 Added state storage, WIP state 2020-01-17 23:07:52 -08:00
diamondburned (Forefront) 03d226e23d WIP integration test 2020-01-14 23:34:18 -08:00
diamondburned (Forefront) 67450c4872 Added wsutil 2020-01-08 21:24:45 -08:00
diamondburned (Forefront) e4cd4f9b69 Experimenting with rate limits 2020-01-07 23:10:37 -08:00
diamondburned (Forefront) a386f6a359 More things, what a pain in the ass 2020-01-05 19:48:39 -08:00
diamondburned e41a2c7c42 Moved Discord structs to package discord 2020-01-02 11:53:08 -08:00
diamondburned 09d9651507 Initial commit 2020-01-01 21:39:52 -08:00