This unlock is exception unsafe, it must be called in every catch blcoks, or we can create RAII idiom based flock wrapper class.