Best Python code snippet using autotest_python
test_gil.py
Source:test_gil.py
...23 raise NotImplementedError24class GILTests(test_rthread.AbstractGCTestClass):25 use_threads = True26 bigtest = False27 def test_one_thread(self, skew=+1):28 from rpython.rlib.debug import debug_print29 if self.bigtest:30 N = 10000031 skew *= 2500032 else:33 N = 10034 skew *= 2535 space = FakeSpace()36 class State:37 pass38 state = State()39 def runme(main=False):40 j = 041 for i in range(N + [-skew, skew][main]):42 state.datalen1 += 1 # try to crash if the GIL is not43 state.datalen2 += 1 # correctly acquired44 state.data.append((thread.get_ident(), i))45 state.datalen3 += 146 state.datalen4 += 147 assert state.datalen1 == len(state.data)48 assert state.datalen2 == len(state.data)49 assert state.datalen3 == len(state.data)50 assert state.datalen4 == len(state.data)51 debug_print(main, i, state.datalen4)52 gil.do_yield_thread()53 assert i == j54 j += 155 def bootstrap():56 try:57 runme()58 except Exception, e:59 assert 060 thread.gc_thread_die()61 def f():62 state.data = []63 state.datalen1 = 064 state.datalen2 = 065 state.datalen3 = 066 state.datalen4 = 067 state.threadlocals = gil.GILThreadLocals()68 state.threadlocals.setup_threads(space)69 thread.gc_thread_prepare()70 subident = thread.start_new_thread(bootstrap, ())71 mainident = thread.get_ident()72 runme(True)73 still_waiting = 300074 while len(state.data) < 2*N:75 debug_print(len(state.data))76 if not still_waiting:77 raise ValueError("time out")78 still_waiting -= 179 if not we_are_translated(): gil.before_external_call()80 time.sleep(0.01)81 if not we_are_translated(): gil.after_external_call()82 debug_print("leaving!")83 i1 = i2 = 084 for tid, i in state.data:85 if tid == mainident:86 assert i == i1; i1 += 187 elif tid == subident:88 assert i == i2; i2 += 189 else:90 assert 091 assert i1 == N + skew92 assert i2 == N - skew93 return len(state.data)94 fn = self.getcompiled(f, [])95 res = fn()96 assert res == 2*N97 def test_one_thread_rev(self):98 self.test_one_thread(skew=-1)99class TestRunDirectly(GILTests):100 def getcompiled(self, f, argtypes):101 return f102class TestUsingFramework(GILTests):103 gcpolicy = 'generation'...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!