switched from using unique_lock to using lock_guard since we don't need
added complexity of unique_lock.
fixed typo in signal::insert