Well, it should probably be `chan < -1` then?  Also, you'll want chan to be an int in that case or do `(int) chan < -1`.  Actually, `chan < 0` is technically a no-op here since it's unsigned - it can't be less than 0.

-[Unknown]