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
