macro_rules! with_heap { ($heap: ty, $do: expr) => { ... }; }
a macro which could only be used in single thread condition