     
     private func ThreadPrivateMainDarwin(arg: UnsafeMutablePointer<Void>) -> UnsafeMutablePointer<Void>? {
         
-        let unmanaged = Unmanaged<Thread.Closure>.fromOpaque(OpaquePointer(arg))
+        let unmanaged = Unmanaged<Thread.Closure>.fromOpaque(arg)
         
         unmanaged.takeUnretainedValue().closure()
         

            pthread_detach(internalThread)
            
        #elseif os(OSX) || os(iOS) || os(watchOS) || os(tvOS)
            
            let pointer = UnsafeMutablePointer<Void>(OpaquePointer(bitPattern: holder))
            
            var internalThread: pthread_t? = nil
            

        
        let holder = Unmanaged.passRetained(Closure(closure: closure))
        
        let pointer = UnsafeMutablePointer<Void>(holder.toOpaque())
        
        #if os(Linux)
            
            var internalThread: pthread_t = 0
            
