[noise] PerformHandshake() Function

Loup Vaillant David loup at loup-vaillant.fr
Mon Jun 3 17:59:49 PDT 2019

On Mon, 2019-06-03 at 19:10 +0000, dawuud wrote:
> Your proposition to implement a handshake function has
> totally ignore this important issue and I'm guessing it's because you
> have lately been implementing things in golang which only gives
> developers access to blocking IO semantics.

To be fair, Golang is probably right on that one: I have implemented
the network layer for a 3-way handshake in C with poll(2), and
I realised that what I really wanted was cooperative threads, with
yield points at each potentially blocking operation. This would give me
the performance of asynchronous I/O with the convenience of fork(2) &
blocking I/O.

Except many languages don't provide cooperative threads, and good luck
binding a synchronous-ish handshake() function written in C to Golang
or Erlang, and still have those yield points.


More information about the Noise mailing list