You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
670 B
34 lines
670 B
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,))
|