fix the test for function_observable
combine two locks into one
channel supports std_threading, too