Using program closures to make an application programming interface (API) implementation thread safeEitan FarchiItai Segallet al.2012ISSTA 2012