<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/cc3200/mpthreadport.c, branch 3.0.0-alpha.0</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.0.0-alpha.0</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.0.0-alpha.0'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2016-10-19T03:24:56+00:00</updated>
<entry>
<title>cc3200: Fix thread mutex's so threading works with interrupts.</title>
<updated>2016-10-19T03:24:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-10-19T03:24:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=17ba6ef5fa7585d3e91dada3044e8e755cf99537'/>
<id>urn:sha1:17ba6ef5fa7585d3e91dada3044e8e755cf99537</id>
<content type='text'>
Running Python code on a hard interrupt is incompatible with having a GIL,
because most of the time the GIL will be held by the user thread when the
interrupt arrives.  Hard interrupts mean that we should process them right
away and hence can't wait until the GIL is released.

The problem with the current code is that a hard interrupt will try to
exit/enter the GIL while it is still held by the user thread, hence leading
to a deadlock.

This patch works around such a problem by just making GIL exit/enter a
no-op when in an interrupt context, or when interrupts are disabled.

See issue #2406.
</content>
</entry>
<entry>
<title>cc3200: Use mp_raise_XXX helper functions to reduce code size.</title>
<updated>2016-10-17T22:53:43+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-10-17T22:53:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=50ddaafa6acf5fbbe6f98e64fd5744a9a8347aff'/>
<id>urn:sha1:50ddaafa6acf5fbbe6f98e64fd5744a9a8347aff</id>
<content type='text'>
Reduces code size by 632 bytes.
</content>
</entry>
<entry>
<title>cc3200/mpthreadport: Move mem alloc outside the thread_mutex lock.</title>
<updated>2016-06-28T10:28:52+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-31T16:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fa2ac93c3a7bbb7b368b4ea3ab3ede75396b14ac'/>
<id>urn:sha1:fa2ac93c3a7bbb7b368b4ea3ab3ede75396b14ac</id>
<content type='text'>
Otherwise there could be a deadlock, with the GC's mutex and
thread_mutex.
</content>
</entry>
<entry>
<title>cc3200/mpthreadport: Scan more root pointers from thread data.</title>
<updated>2016-06-28T10:28:52+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-31T16:32:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=757146efe3b77d0f2fa47604a2c5dfd47550c12a'/>
<id>urn:sha1:757146efe3b77d0f2fa47604a2c5dfd47550c12a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cc3200/mpthreadport: Properly initialise the main thread's data.</title>
<updated>2016-06-28T10:28:52+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-31T16:30:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3b0fbfe4e598db9673f1febbbc6df072ebcd8549'/>
<id>urn:sha1:3b0fbfe4e598db9673f1febbbc6df072ebcd8549</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cc3200/mpthreadport: Make mutex statically allocated.</title>
<updated>2016-06-28T10:28:52+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-31T16:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=27241293c4f5ae26927f70fe03cdd86fa1819aa1'/>
<id>urn:sha1:27241293c4f5ae26927f70fe03cdd86fa1819aa1</id>
<content type='text'>
Reduced the need for the FreeRTOS heap to allocate the mutex.
</content>
</entry>
<entry>
<title>cc3200: Fix call to new exception to be _msg instead of _arg1.</title>
<updated>2016-06-28T10:28:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-30T15:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c9520c591b8844470e0ae5f06f573add5a7172b4'/>
<id>urn:sha1:c9520c591b8844470e0ae5f06f573add5a7172b4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/modthread: Allow to properly set the stack limit of a thread.</title>
<updated>2016-06-28T10:28:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-30T15:56:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=df95f52583e0f5e3f2a74f7461bb00e2f24b3079'/>
<id>urn:sha1:df95f52583e0f5e3f2a74f7461bb00e2f24b3079</id>
<content type='text'>
We rely on the port setting and adjusting the stack size so there is
enough room to recover from hitting the stack limit.
</content>
</entry>
<entry>
<title>cc3200: Add basic threading capabilities.</title>
<updated>2016-06-28T10:28:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-27T16:35:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=eef4f13a3390dc88902563acb047f0439eff0caf'/>
<id>urn:sha1:eef4f13a3390dc88902563acb047f0439eff0caf</id>
<content type='text'>
Can create a new thread and run it.  Does not use the GIL at this point.
</content>
</entry>
</feed>
