<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/extmod/modutimeq.c, branch v1.9.3</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.3</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.3'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-10-24T11:39:36+00:00</updated>
<entry>
<title>all: Use NULL instead of "" when calling mp_raise exception helpers.</title>
<updated>2017-10-24T11:39:36+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-24T11:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f4059dcc0c5251256a53fcb49f56fdda6e879341'/>
<id>urn:sha1:f4059dcc0c5251256a53fcb49f56fdda6e879341</id>
<content type='text'>
This is the established way of doing it and reduces code size by a little
bit.
</content>
</entry>
<entry>
<title>all: Remove inclusion of internal py header files.</title>
<updated>2017-10-04T01:37:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-04T01:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a3dc1b1957d2c96d7c60c2c629c95077b03488a1'/>
<id>urn:sha1:a3dc1b1957d2c96d7c60c2c629c95077b03488a1</id>
<content type='text'>
Header files that are considered internal to the py core and should not
normally be included directly are:
    py/nlr.h - internal nlr configuration and declarations
    py/bc0.h - contains bytecode macro definitions
    py/runtime0.h - contains basic runtime enums

Instead, the top-level header files to include are one of:
    py/obj.h - includes runtime0.h and defines everything to use the
        mp_obj_t type
    py/runtime.h - includes mpstate.h and hence nlr.h, obj.h, runtime0.h,
        and defines everything to use the general runtime support functions

Additional, specific headers (eg py/objlist.h) can be included if needed.
</content>
</entry>
<entry>
<title>all: Convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriate</title>
<updated>2017-08-29T03:16:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-08-29T03:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=58321dd9854d71a96e5db2d361e0efc05d9de8cf'/>
<id>urn:sha1:58321dd9854d71a96e5db2d361e0efc05d9de8cf</id>
<content type='text'>
The unary-op/binary-op enums are already defined, and there are no
arithmetic tricks used with these types, so it makes sense to use the
correct enum type for arguments that take these values.  It also reduces
code size quite a bit for nan-boxing builds.
</content>
</entry>
<entry>
<title>modutimeq: Add peektime() function (provisional).</title>
<updated>2017-03-29T15:18:35+00:00</updated>
<author>
<name>Jan Pochyla</name>
<email>jpochyla@gmail.com</email>
</author>
<published>2017-02-24T13:14:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e9d7c3ea0ef7b726b093b1abf9cece0c9146d635'/>
<id>urn:sha1:e9d7c3ea0ef7b726b093b1abf9cece0c9146d635</id>
<content type='text'>
Allows to get event time for a head item in the queue. The usecase
if waiting for the next event *OR* I/O completion. I/O completion may
happen before event triggers, and then wait should continue for the
remaining event time (or I/O completion may schedule another earlier
event altogether).

The new function has a strongly provisional status - it may be converted
to e.g. peek() function returning all of the event fields, not just time.
</content>
</entry>
<entry>
<title>extmod/modutimeq: Make scheduling fair (round-robin).</title>
<updated>2017-03-07T08:34:09+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-03-07T08:34:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=830ce74f324d3a384e383e840de4ee229c41ba36'/>
<id>urn:sha1:830ce74f324d3a384e383e840de4ee229c41ba36</id>
<content type='text'>
By adding back monotonically increasing field in addition to time field.
As heapsort is not stable, without this, among entried added and readded
at the same time instant, some might be always selected, and some might
never be selected, leading to scheduling starvation.
</content>
</entry>
<entry>
<title>extmod/modutimeq: Make time_less_than be actually "less than", not less/eq.</title>
<updated>2016-12-23T21:06:29+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-23T21:06:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7327966da73b1c22d6658489c2a032932467e495'/>
<id>urn:sha1:7327966da73b1c22d6658489c2a032932467e495</id>
<content type='text'>
This fixes an obvious case of non-fair scheduling of 2 tasks with the same
deadline.
</content>
</entry>
<entry>
<title>extmod/modutimeq: Fix printf in dump().</title>
<updated>2016-12-23T18:11:19+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-23T18:08:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=18f12caafc8b0f7d1681d0d2a20b6fec3be9bd84'/>
<id>urn:sha1:18f12caafc8b0f7d1681d0d2a20b6fec3be9bd84</id>
<content type='text'>
</content>
</entry>
<entry>
<title>extmod/modutimeq: Fix warning about unused param.</title>
<updated>2016-12-21T21:48:19+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-21T21:48:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1b44987d0ca72fb877026fc96681f064c8fb2b2f'/>
<id>urn:sha1:1b44987d0ca72fb877026fc96681f064c8fb2b2f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>extmod/modutimeq: Refactor into optimized class.</title>
<updated>2016-12-21T21:29:32+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-21T21:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d02f6a9956760425188f517f3708c76123e53d2a'/>
<id>urn:sha1:d02f6a9956760425188f517f3708c76123e53d2a</id>
<content type='text'>
    import utimeq, utime
    # Max queue size, the queue allocated statically on creation
    q = utimeq.utimeq(10)
    q.push(utime.ticks_ms(), data1, data2)
    res = [0, 0, 0]
    # Items in res are filled up with results
    q.pop(res)
</content>
</entry>
<entry>
<title>extmod/modutimeq: Copy of current moduheapq with timeq support for refactoring.</title>
<updated>2016-12-21T21:23:11+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-21T21:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ef23399e32f03d251942b7a29c720a9cf72a1c26'/>
<id>urn:sha1:ef23399e32f03d251942b7a29c720a9cf72a1c26</id>
<content type='text'>
</content>
</entry>
</feed>
