Added threading.Condition() to prevent get_data and create_data_products from racing each other. Not sure how to test that the locks are working correctly, since earlier observed errors were due to a bad channeL_id algorithm, but the program is working.