mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 07:02:26 -05:00
after seeing a potential reported federating worker lockup i decided to start digging into the federatingdb code. this PR encompasses:
- removes one of our last unused interface types `federatingdb.DB{}`, replacing it with a struct type `*federatingdb.DB{}`
- in `transport.dereferenceLocal()` differentiates between an unsupported lookup type and ErrNoEntries to reduce unnecessary calls, and reduce potential lockups that may occur while trying to call our own endpoints that then call `federatingdb.Lock()`
- removes a bunch of the locks on follow state changes since the DB already synchronizes that
- removes the unnecessary `pub.Clock{}` struct field and type passed to the transport controller
frankly it would be great if we could remove the locking in `federatingdb.Lock()` and instead handle it ourselves as it gets very confusing trying to figure out what functions will have locks held. but i guess that's one for when we move further away from the go-fed/activity/pub package usage.
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4178
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
|
||
|---|---|---|
| .. | ||
| account | ||
| admin | ||
| advancedmigrations | ||
| application | ||
| common | ||
| conversations | ||
| fedi | ||
| filters | ||
| interactionrequests | ||
| list | ||
| markers | ||
| media | ||
| polls | ||
| push | ||
| report | ||
| search | ||
| status | ||
| stream | ||
| tags | ||
| timeline | ||
| user | ||
| workers | ||
| followrequest_test.go | ||
| instance.go | ||
| oauth.go | ||
| parsemention.go | ||
| parsemention_test.go | ||
| preferences.go | ||
| preferences_test.go | ||
| processor.go | ||
| processor_test.go | ||