Hi all,

This week most of my time is occupied by taking final examinations, an
really exhausted week! The good part is that all my courses ended and thus
I can dance with Monkey freely again. :)

For the rest of this week I was trying to fix the annoying errors thrown by
valgrind. The first warning was introduced by user space stack pointer
switching and after reading the source code of lwan-coro.c, I suppressed
these warnings by using the VALGRIND_STACK_REGISTER and
VALGRIND_STACK_DEREGISTER workaround.

Serveral errors reporting about invalid read/write of size 8, Address
inside a block of size xxx free'd raised when a connection is closed by the
client side and free was called to free a coroutine structure. Yet a tricky
bug that I am still locating the line of code that caused it. After doing a
lot of searching and trying, the errors remains and GDB can hardly help in
this situation. Normally, this is triggered by incorrectly access to memory
or double free or unmatched malloc/free. However, I couldn't find any of
these within my code, I guess this maybe something related to user space
stack switching.

One more stuff, I realized the current design of coroutine might not be
enough for more complicate usage, for example, how to pass value from one
coroutine to another as a producer-consumer pattern(useful when interacting
with a database).

For the next week, I will be preparing for mid-term evaluation and try to
refactor the coroutine module and fix the remaning errors.

Blog Post:
http://blog-swpd.rhcloud.com/gsoc-2014-update-duda-io-coroutines-week-5/

Github Repo: https://github.com/swpd/coroutine

Best Regards,

swpd
_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to