FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cefpython/cefpython/task.pyx at cefpython31 · cztomczak/cefpython · GitHub
cztomczak
/
cefpython
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
477
Star
3.2k
Code
Issues
223
Pull requests
4
Actions
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
cefpython
/
cefpython
/
task.pyx
Copy path
More file actions
More file actions
Latest commit
History
History
History
60 lines (46 loc) · 1.61 KB
Breadcrumbs
cefpython
/
cefpython
/
task.pyx
Copy path
File metadata and controls
60 lines (46 loc) · 1.61 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#
Copyright (c) 2012-2014 The CEF Python authors. All rights reserved.
#
License: New BSD License.
#
Website: http://code.google.com/p/cefpython/
g_taskMaxId
=
0
g_tasks
=
{}
def
PostTask
(int
threadId
, object
func
, *
args
):
global
g_tasks, g_taskMaxId
#
Validate threadId.
if
threadId
not
in
g_browserProcessThreads:
raise
Exception
(
"
PoastTask failed: requires a browser process thread
"
)
#
Validate func.
if
not
IsFunctionOrMethod(
type
(func)):
raise
Exception
(
"
PostTask failed: not a function nor method
"
)
#
Params.
cdef
list
params
=
list
(args)
#
Keep func and params until PyTaskRunnable is called.
g_taskMaxId
+=
1
g_tasks[
str
(g_taskMaxId)]
=
{
"
func
"
: func,
"
params
"
: params
}
#
Call C++ wrapper.
cdef
int
cTaskId
=
int
(g_taskMaxId)
with
nogil:
PostTaskWrapper(threadId, cTaskId)
cdef public
void
PyTaskRunnable(
int
taskId)
except
*
with
gil:
cdef
object
func
cdef
list
params
cdef
object
task
try
:
global
g_tasks
#
Validate if task exist.
if
str
(taskId)
not
in
g_tasks:
raise
Exception
(
"
PyTaskRunnable failed: invalid taskId=
%s
"
\
%
taskId)
#
Fetch task: func and params.
task
=
g_tasks[
str
(taskId)]
func
=
task[
"
func
"
]
params
=
task[
"
params
"
]
del
g_tasks[
str
(taskId)]
#
Execute user func.
Debug(
"
PyTaskRunnable: taskId=
%s
, func=
%s
"
%
(taskId, func.
__name__
))
func(
*
params)
except
:
(exc_type, exc_value, exc_trace)
=
sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
Back
|
FazBrowse Home
|
New Git URL