         semaphore = Semaphore(.Binary)
     }
     
-    public func perform(block:(Void) -> Void) {
+    public func synchronize(block:(Void) -> Void) {
         semaphore.perform(block)
     }
     

public postfix func -- (semaphore: Semaphore) {
    semaphore.wait()
}


    public init(_ kind:Kind = .Binary) {
        self.kind = kind
        semaphore = dispatch_semaphore_create(kind.unitsCount())
    }
    public init(resource:UInt16){
        self.kind = .Counting(resource:resource)
        semaphore = dispatch_semaphore_create(kind.unitsCount())
    }
    
    //MARK: - Semaphore core method
