         
     }
     func go(closure: ()->()){
-        dispatch_async(dispatch_queue_create(nil, nil)){
+        dispatch_thread{
             self._go(closure)
         }
     }

        cond.locker.unlock()
    }
}

// MARK: - Lang -
protocol ChanAny {
    func receive(wait : Bool, mutex : Mutex?, inout flag : Bool) -> (msg : Any?, ok : Bool, ready : Bool)
    func send(msg : Any?)


import Foundation

private let pt_entry: @objc_block (UnsafeMutablePointer<Void>) -> UnsafeMutablePointer<Void> = { (ctx) in
    let np = UnsafeMutablePointer<()->()>(ctx)
    np.memory()
    np.destroy()
    np.dealloc(1)
    return nil
}
private var pt_entry_imp = imp_implementationWithBlock(unsafeBitCast(pt_entry, AnyObject.self))
private let pt_entry_fp = CFunctionPointer<(UnsafeMutablePointer<Void>) -> UnsafeMutablePointer<Void>>(pt_entry_imp)
func dispatch_thread(block : ()->()){
    let p = UnsafeMutablePointer<()->()>.alloc(1)
    p.initialize(block)
    var t = pthread_t()
    pthread_create(&t, nil, pt_entry_fp, p)
}
protocol Locker {
    func lock()
    func unlock()
