Discord: Try to avoid more race conditions

also added RACE=on to Makefile to enable go's race detector.
This commit is contained in:
Harvey Tindall 2021-05-23 22:26:56 +01:00
parent f419a57e6d
commit 86ef665b12
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 15 additions and 2 deletions

View File

@ -52,6 +52,13 @@ else
TYPECHECK :=
endif
RACE ?= off
ifeq ($(RACE), on)
RACEDETECTOR := -race
else
RACEDETECTOR :=
endif
npm:
$(info installing npm dependencies)
npm install
@ -91,7 +98,7 @@ compile:
$(GOBINARY) mod download
$(info Building)
mkdir -p build
$(GOBINARY) build -ldflags="$(LDFLAGS)" $(TAGS) -o build/jfa-go
$(GOBINARY) build $(RACEDETECTOR) -ldflags="$(LDFLAGS)" $(TAGS) -o build/jfa-go
compress:
upx --lzma build/jfa-go

View File

@ -77,11 +77,17 @@ func (d *DiscordDaemon) run() {
d.app.err.Printf("Discord: Failed to start daemon: %v", err)
return
}
// Sometimes bot.State isn't populated quick enough
// Wait for everything to populate, it's slow sometimes.
for d.bot.State == nil {
continue
}
for d.bot.State.User == nil {
continue
}
d.username = d.bot.State.User.Username
for d.bot.State.Guilds == nil {
continue
}
// Choose the last guild (server), for now we don't really support multiple anyway
d.guildID = d.bot.State.Guilds[len(d.bot.State.Guilds)-1].ID
guild, err := d.bot.Guild(d.guildID)