Slight refactoring.
Readability improvements
Rearranged tests classes to reduce file count
Spurious Int32 declarations removed
Slightly nicer defer.
Let the semaphores take care of the accounting.
A N-element channel implemented around semaphore queues.
Resynchronized chan-benchmark.go and chank-benchmark/main.swift

Our implementations are between 4.5 and 44 times slower than the go implementations.
Thread preemption is understandably more effective in go, but most memory accesses are also much faster in go.
Accessing stack data (aka Value Types) in Swift appears to be just as fast.
Accessing memory in Reference Types is something else.