This work is supported in part by NSF grant No-0137743. We would like to thank the concurrent programming research group at IIT for its contributions.