| import cffi |
| |
| ffi = cffi.FFI() |
| |
| ffi.embedding_api(""" |
| int add1(int, int); |
| """) |
| |
| ffi.embedding_init_code(r""" |
| from _tlocal_cffi import ffi |
| import itertools |
| try: |
| import thread |
| g_seen = itertools.count().next |
| except ImportError: |
| import _thread as thread # py3 |
| g_seen = itertools.count().__next__ |
| tloc = thread._local() |
| |
| @ffi.def_extern() |
| def add1(x, y): |
| try: |
| num = tloc.num |
| except AttributeError: |
| num = tloc.num = g_seen() * 1000 |
| return x + y + num |
| """) |
| |
| ffi.set_source("_tlocal_cffi", """ |
| """) |
| |
| fn = ffi.compile(verbose=True) |
| print('FILENAME: %s' % (fn,)) |