Skip to content
Snippets Groups Projects
Commit fa0f1238 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

python: run callback in main thread

parent 7b170729
Branches
No related tags found
No related merge requests found
...@@ -20,6 +20,7 @@ from pprint import pprint ...@@ -20,6 +20,7 @@ from pprint import pprint
from math import cos, sin, pi from math import cos, sin, pi
from urllib import request from urllib import request
import gzip import gzip
import asyncio
sys.path.append('..') sys.path.append('..')
from opendht import * from opendht import *
...@@ -96,6 +97,8 @@ all_lines = [] ...@@ -96,6 +97,8 @@ all_lines = []
plt.pause(2) plt.pause(2)
loop = asyncio.get_event_loop()
def step(cur_h, cur_depth): def step(cur_h, cur_depth):
global done, all_nodes, all_lines global done, all_nodes, all_lines
done += 1 done += 1
...@@ -105,7 +108,7 @@ def step(cur_h, cur_depth): ...@@ -105,7 +108,7 @@ def step(cur_h, cur_depth):
arc = ringx.add_patch(mpatches.Wedge([0.,0,], 1., a*180/pi, b*180/pi, fill=True, color="blue", alpha=0.5)) arc = ringx.add_patch(mpatches.Wedge([0.,0,], 1., a*180/pi, b*180/pi, fill=True, color="blue", alpha=0.5))
lines = ringx.plot([0, cos(a)], [0, sin(a)], 'k-', lw=1.2) lines = ringx.plot([0, cos(a)], [0, sin(a)], 'k-', lw=1.2)
all_lines.extend(lines) all_lines.extend(lines)
r.get(cur_h, gcb, lambda d, nodes: nextstep(cur_h, cur_depth, d, nodes, arc=arc, lines=lines)) r.get(cur_h, gcb, lambda d, nodes: loop.call_soon_threadsafe(nextstep, cur_h, cur_depth, d, nodes, arc, lines))
def nextstep(cur_h, cur_depth, ok, nodes, arc=None, lines=[]): def nextstep(cur_h, cur_depth, ok, nodes, arc=None, lines=[]):
global done, all_nodes global done, all_nodes
...@@ -239,6 +242,8 @@ def d(arg): ...@@ -239,6 +242,8 @@ def d(arg):
while run: while run:
while run and done > 0: while run and done > 0:
loop.stop()
loop.run_forever()
update_plot() update_plot()
plt.draw() plt.draw()
plt.pause(.5) plt.pause(.5)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment