The algorithm was proposed by Shing-Tsaan Huang in 1989 in Information Processing Letters.
[1] The basis of termination detection is in the concept of a distributed system process' state.
An active process may become idle at any time but an idle process may only become active again upon receiving a computational message.
Termination occurs when all processes in the distributed system become idle and there are no computational messages in transit.
Huang's algorithm can be described by the following: Some weaknesses to Huang's algorithm are that it is unable to detect termination if a message is lost in transit or if a process fails while in an active state.