sharing transactions across threads