Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
pygolang
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Levin Zimmermann
pygolang
Commits
4f6a9e09
Commit
4f6a9e09
authored
5 years ago
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
time: Add type annotations to function arguments where possible
parent
106c1b95
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
10 deletions
+10
-10
golang/_time.pyx
golang/_time.pyx
+10
-10
No files found.
golang/_time.pyx
View file @
4f6a9e09
...
@@ -44,7 +44,7 @@ def pysleep(double dt):
...
@@ -44,7 +44,7 @@ def pysleep(double dt):
#
#
# Note: there is no way to stop created ticker.
# Note: there is no way to stop created ticker.
# Note: for dt <= 0, contrary to Ticker, tick returns nilchan instead of panicking.
# Note: for dt <= 0, contrary to Ticker, tick returns nilchan instead of panicking.
def
tick
(
d
t
):
# -> chan time
def
tick
(
d
ouble
dt
):
# -> chan time
if
dt
<=
0
:
if
dt
<=
0
:
return
pynilchan
return
pynilchan
return
Ticker
(
dt
).
c
return
Ticker
(
dt
).
c
...
@@ -52,14 +52,14 @@ def tick(dt): # -> chan time
...
@@ -52,14 +52,14 @@ def tick(dt): # -> chan time
# after returns channel connected to dt timer.
# after returns channel connected to dt timer.
#
#
# Note: with after there is no way to stop/garbage-collect created timer until it fires.
# Note: with after there is no way to stop/garbage-collect created timer until it fires.
def
after
(
d
t
):
# -> chan time
def
after
(
d
ouble
dt
):
# -> chan time
return
Timer
(
dt
).
c
return
Timer
(
dt
).
c
# after_func arranges to call f after dt time.
# after_func arranges to call f after dt time.
#
#
# The function will be called in its own goroutine.
# The function will be called in its own goroutine.
# Returned timer can be used to cancel the call.
# Returned timer can be used to cancel the call.
def
after_func
(
dt
,
f
):
# -> Timer
def
after_func
(
d
ouble
d
t
,
f
):
# -> Timer
return
Timer
(
dt
,
f
=
f
)
return
Timer
(
dt
,
f
=
f
)
...
@@ -75,7 +75,7 @@ cdef class Ticker:
...
@@ -75,7 +75,7 @@ cdef class Ticker:
cdef
sync
.
Mutex
_mu
cdef
sync
.
Mutex
_mu
cdef
bint
_stop
cdef
bint
_stop
def
__init__
(
self
,
dt
):
def
__init__
(
Ticker
self
,
double
dt
):
if
dt
<=
0
:
if
dt
<=
0
:
pypanic
(
"ticker: dt <= 0"
)
pypanic
(
"ticker: dt <= 0"
)
self
.
c
=
pychan
(
1
)
# 1-buffer -- same as in Go
self
.
c
=
pychan
(
1
)
# 1-buffer -- same as in Go
...
@@ -86,7 +86,7 @@ cdef class Ticker:
...
@@ -86,7 +86,7 @@ cdef class Ticker:
# stop cancels the ticker.
# stop cancels the ticker.
#
#
# It is guaranteed that ticker channel is empty after stop completes.
# It is guaranteed that ticker channel is empty after stop completes.
def
stop
(
self
):
def
stop
(
Ticker
self
):
self
.
_mu
.
lock
()
self
.
_mu
.
lock
()
self
.
_stop
=
True
self
.
_stop
=
True
...
@@ -95,7 +95,7 @@ cdef class Ticker:
...
@@ -95,7 +95,7 @@ cdef class Ticker:
self
.
c
.
recv
()
self
.
c
.
recv
()
self
.
_mu
.
unlock
()
self
.
_mu
.
unlock
()
def
_tick
(
self
):
def
_tick
(
Ticker
self
):
while
1
:
while
1
:
# XXX adjust for accumulated error δ?
# XXX adjust for accumulated error δ?
pysleep
(
self
.
_dt
)
pysleep
(
self
.
_dt
)
...
@@ -129,7 +129,7 @@ cdef class Timer:
...
@@ -129,7 +129,7 @@ cdef class Timer:
cdef
double
_dt
# +inf - stopped, otherwise - armed
cdef
double
_dt
# +inf - stopped, otherwise - armed
cdef
int
_ver
# current timer was armed by n'th reset
cdef
int
_ver
# current timer was armed by n'th reset
def
__init__
(
self
,
dt
,
f
=
None
):
def
__init__
(
Timer
self
,
double
dt
,
f
=
None
):
self
.
_f
=
f
self
.
_f
=
f
self
.
c
=
pychan
(
1
)
if
f
is
None
else
pynilchan
self
.
c
=
pychan
(
1
)
if
f
is
None
else
pynilchan
self
.
_dt
=
INFINITY
self
.
_dt
=
INFINITY
...
@@ -149,7 +149,7 @@ cdef class Timer:
...
@@ -149,7 +149,7 @@ cdef class Timer:
# Note: similarly to Go, if Timer is used with function - it is not
# Note: similarly to Go, if Timer is used with function - it is not
# guaranteed that after stop the function is not running - in such case
# guaranteed that after stop the function is not running - in such case
# the caller must explicitly synchronize with that function to complete.
# the caller must explicitly synchronize with that function to complete.
def
stop
(
self
):
# -> canceled
def
stop
(
Timer
self
):
# -> canceled
self
.
_mu
.
lock
()
self
.
_mu
.
lock
()
if
self
.
_dt
==
INFINITY
:
if
self
.
_dt
==
INFINITY
:
...
@@ -169,7 +169,7 @@ cdef class Timer:
...
@@ -169,7 +169,7 @@ cdef class Timer:
# reset rearms the timer.
# reset rearms the timer.
#
#
# the timer must be either already stopped or expired.
# the timer must be either already stopped or expired.
def
reset
(
self
,
dt
):
def
reset
(
Timer
self
,
double
dt
):
self
.
_mu
.
lock
()
self
.
_mu
.
lock
()
if
self
.
_dt
!=
INFINITY
:
if
self
.
_dt
!=
INFINITY
:
self
.
_mu
.
unlock
()
self
.
_mu
.
unlock
()
...
@@ -180,7 +180,7 @@ cdef class Timer:
...
@@ -180,7 +180,7 @@ cdef class Timer:
self
.
_mu
.
unlock
()
self
.
_mu
.
unlock
()
def
_fire
(
self
,
dt
,
ver
):
def
_fire
(
Timer
self
,
double
dt
,
int
ver
):
pysleep
(
dt
)
pysleep
(
dt
)
self
.
_mu
.
lock
()
self
.
_mu
.
lock
()
if
self
.
_ver
!=
ver
:
if
self
.
_ver
!=
ver
:
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment