A user-level non-preemptive multi-threading library for GNU environment