Commit Graph

5 Commits

Author SHA1 Message Date
Daniel Sockwell daf7d1ae7f
Add tests for polling for multiple messages (#149)
* Add tests for polling for multiple messages

This commit adds a mock Redis interface and adds tests that poll the
mock interface for multiple messages at a time.  These tests test that
Flodgatt is robust against receiving incomplete messages, including if
the message break results in receiving invalid UTF8.

* Remove temporary files
2020-05-07 10:56:11 -04:00
Daniel Sockwell cae01b6e90
Fix redis_namespace bug (#141)
This fixes a bug that would cause Redis commands not to be sent
properly when users had set the REDIS_NAMESPACE environmental
variable.
2020-04-24 14:47:11 -04:00
Daniel Sockwell b18500b884
Resolve memory-use regression (#140)
* Use monotonically increasing channel_id

Using a monotonically increasing channel_id (instead of a Uuid)
reduces memory use under load by ~3%

* Use replace unbounded channels with bounded

This also slightly reduces memory use

* Heap allocate Event

Wrapping the Event struct in an Arc avoids excessive copying and significantly reduces memory use.

* Implement more efficient unsubscribe strategy

* Fix various Clippy lints; bump version

* Update config defaults
2020-04-24 13:23:59 -04:00
Daniel Sockwell 2725439110
Update concurrency primitive. (#139)
* Initial [WIP] implementation

This initial implementation works to send messages but does not yet
handle unsubscribing properly.

* Implement UnboundedSender

* Implement UnboundedChannels for concurrency
2020-04-23 19:28:26 -04:00
Daniel Sockwell 016f49a2d8
Improve module privacy (#136)
* Adjust module privacy

* Use trait object

* Finish module privacy refactor
2020-04-22 14:38:22 -04:00