mirror of
https://github.com/vim/vim.git
synced 2025-11-10 10:47:23 -05:00
updated for version 7.3.808
Problem: Python threads still do not work properly. Solution: Fix both Python 2 and 3. Add tests. (Ken Takata)
This commit is contained in:
@@ -267,6 +267,54 @@ EOF
|
||||
: $put =toput
|
||||
: endtry
|
||||
:endfor
|
||||
:"
|
||||
:" threading
|
||||
:let l = [0]
|
||||
:py l=vim.bindeval('l')
|
||||
:py <<EOF
|
||||
import threading
|
||||
import time
|
||||
|
||||
class T(threading.Thread):
|
||||
def __init__(self):
|
||||
threading.Thread.__init__(self)
|
||||
self.t = 0
|
||||
self.running = True
|
||||
|
||||
def run(self):
|
||||
while self.running:
|
||||
self.t += 1
|
||||
time.sleep(0.1)
|
||||
|
||||
t = T()
|
||||
t.start()
|
||||
EOF
|
||||
:sleep 1
|
||||
:py t.running = False
|
||||
:py t.join()
|
||||
:py l[0] = t.t > 8 # check if the background thread is working
|
||||
:$put =string(l)
|
||||
:"
|
||||
:" settrace
|
||||
:let l = []
|
||||
:py l=vim.bindeval('l')
|
||||
:py <<EOF
|
||||
import sys
|
||||
|
||||
def traceit(frame, event, arg):
|
||||
global l
|
||||
if event == "line":
|
||||
l.extend([frame.f_lineno])
|
||||
return traceit
|
||||
|
||||
def trace_main():
|
||||
for i in range(5):
|
||||
pass
|
||||
EOF
|
||||
:py sys.settrace(traceit)
|
||||
:py trace_main()
|
||||
:py sys.settrace(None)
|
||||
:$put =string(l)
|
||||
:endfun
|
||||
:"
|
||||
:call Test()
|
||||
|
||||
@@ -63,3 +63,5 @@ ll:[1]
|
||||
{"\0": 1}: Vim(let):E859:
|
||||
undefined_name: Vim(let):E858:
|
||||
vim: Vim(let):E859:
|
||||
[1]
|
||||
[1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1]
|
||||
|
||||
@@ -267,6 +267,54 @@ EOF
|
||||
: $put =toput
|
||||
: endtry
|
||||
:endfor
|
||||
:"
|
||||
:" threading
|
||||
:let l = [0]
|
||||
:py3 l=vim.bindeval('l')
|
||||
:py3 <<EOF
|
||||
import threading
|
||||
import time
|
||||
|
||||
class T(threading.Thread):
|
||||
def __init__(self):
|
||||
threading.Thread.__init__(self)
|
||||
self.t = 0
|
||||
self.running = True
|
||||
|
||||
def run(self):
|
||||
while self.running:
|
||||
self.t += 1
|
||||
time.sleep(0.1)
|
||||
|
||||
t = T()
|
||||
t.start()
|
||||
EOF
|
||||
:sleep 1
|
||||
:py3 t.running = False
|
||||
:py3 t.join()
|
||||
:py3 l[0] = t.t > 8 # check if the background thread is working
|
||||
:$put =string(l)
|
||||
:"
|
||||
:" settrace
|
||||
:let l = []
|
||||
:py3 l=vim.bindeval('l')
|
||||
:py3 <<EOF
|
||||
import sys
|
||||
|
||||
def traceit(frame, event, arg):
|
||||
global l
|
||||
if event == "line":
|
||||
l += [frame.f_lineno]
|
||||
return traceit
|
||||
|
||||
def trace_main():
|
||||
for i in range(5):
|
||||
pass
|
||||
EOF
|
||||
:py3 sys.settrace(traceit)
|
||||
:py3 trace_main()
|
||||
:py3 sys.settrace(None)
|
||||
:$put =string(l)
|
||||
:endfun
|
||||
:"
|
||||
:call Test()
|
||||
|
||||
@@ -63,3 +63,5 @@ ll:[1]
|
||||
{"\0": 1}: Vim(let):E861:
|
||||
undefined_name: Vim(let):E860:
|
||||
vim: Vim(let):E861:
|
||||
[1]
|
||||
[1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1]
|
||||
|
||||
Reference in New Issue
Block a user