eclipse-paho / paho.mqtt.golang

Other
2.77k stars 534 forks source link

Rearchitect status handling as per issue #605 #607

Closed MattBrittan closed 2 years ago

MattBrittan commented 2 years ago

This is a major change that moves handling of the status (i.e. disconnected, connecting etc) out to status.go. It also introduces the new status disconnecting.

All existing tests (including 10000 runs through Test_DisconnectWhileProcessingIncomingPublish) pass and I have added new ones to specifically test the connectionStatus functionality. However this is a major change so bugs may have been introduced!

The major aim of this change is to simplify future work, It has been difficult to implement changes/refactor because the status handling was fragile (and not fully thread safe in some instances).