An User-level Non-preemptive Multi-threading Library for GNU Environment