Put now returns an error
Put some more Go spirit in GC wakeup
Forgot to check a theoretical race condition
Fix some corner cases around garbage collection (GC now end up being closed)