Send textual messages to a Handle in a thread-friendly way. The functions provided in this library guarantee the following properties:
Properly handle character encoding settings on the Handle.
For reasonably sized messages, ensure that the entire message is written in one chunk to avoid interleaving data with other threads. (This includes the trailing newline character.)
Avoid unnecessary memory allocations and copies
Minimize locking.