using sthread
canneal