 				signal.observe { event in
 					if !hasSlept {
 						sema.signal()
-						sleep(5)
+						usleep(UInt32(USEC_PER_SEC) >> 3)
 						hasSlept = true
 					}
 					events.append(event)

					queue = DispatchQueue.global(priority: .high)
				}

				let iterations = 100000
				let group = DispatchGroup()

				queue.async(group: group) {

				group.wait()

				expect(executionCounter.value) == iterations * 2
				expect(counter.value).toEventually(equal(iterations), timeout: 5)
			}
		}

