implement the linux like workqueue interfaces