kazu-yamamoto / dnsext

Extensible DNS libraries written purely in Haskell
57 stars 3 forks source link

Ensure that the VC sender-loop waits for a synchronization event to terminate. #178

Closed khibino closed 2 months ago

khibino commented 2 months ago

After TCP53 or DoT query, if you look at the state of the sender thread, you will see that it is ThreadBlocked and is still waiting.

monitor> tstats tcp
tcp-recv             : 305: ThreadFinished
tcp-send             : 304: ThreadBlocked BlockedOnSTM
tcp-srv              : 144: ThreadBlocked BlockedOnMVar
tcp-srv              : 151: ThreadBlocked BlockedOnMVar
monitor> tstats tls
tls-recv             : 464: ThreadFinished
tls-send             : 463: ThreadBlocked BlockedOnSTM
tls-srv              : 163: ThreadBlocked BlockedOnMVar
tls-srv              : 167: ThreadBlocked BlockedOnMVar

The end condition of the sender is determined by waiting for three states:

kazu-yamamoto commented 2 months ago

Please use >> instead of *>.