         // no need to try for the semaphore.
         break
 
-      default:
+      case let context: // default
         let ws = Unmanaged<dispatch_semaphore_t>.fromOpaque(COpaquePointer(context)).takeRetainedValue()
         if let s = semaphore.get()
         {

          dispatch_semaphore_signal(rs)
        }
      }
    }

    return {
      OSSpinLockLock(&self.lock)
      if self.writerQueue.remove(threadLock)
      {
        dispatch_set_context(threadLock, cancelSelect)
        dispatch_semaphore_signal(threadLock)
      }
      OSSpinLockUnlock(&self.lock)
    }
  }


          dispatch_set_context(s, nil)
          dispatch_semaphore_signal(s)
        }

      case cancelSelect:
        // no need to try for the semaphore.
        break

      case let context: // default
        let rs = Unmanaged<dispatch_semaphore_t>.fromOpaque(COpaquePointer(context)).takeRetainedValue()
        if let s = semaphore.get()
        { // pass rs on to insert()
