summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-11-07 00:43:21 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-11-07 00:43:21 +0200
commitcb910c6a0c5338737e5fb7f6f39be0600eb32b72 (patch)
treed348b4f4c2e8909af6e2e89ee1dc17ba2ddd5eff
parent99bf5448bd02f9b97f55025725e7d2d4ba9aced8 (diff)
unix/moduselect: Add .dump() method for debugging.
Commented out by default.
-rw-r--r--ports/unix/moduselect.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ports/unix/moduselect.c b/ports/unix/moduselect.c
index ba1c195ef..45a5c321c 100644
--- a/ports/unix/moduselect.c
+++ b/ports/unix/moduselect.c
@@ -277,12 +277,30 @@ STATIC mp_obj_t poll_iternext(mp_obj_t self_in) {
return MP_OBJ_STOP_ITERATION;
}
+STATIC mp_obj_t poll_dump(mp_obj_t self_in) {
+ mp_obj_poll_t *self = MP_OBJ_TO_PTR(self_in);
+
+ struct pollfd *entries = self->entries;
+ for (int i = self->len - 1; i >= 0; i--) {
+ printf("fd: %d ev: %x rev: %x", entries->fd, entries->events, entries->revents);
+ if (self->obj_map) {
+ printf(" obj: %p", self->obj_map[entries - self->entries]);
+ }
+ printf("\n");
+ entries++;
+ }
+
+ return mp_const_none;
+}
+MP_DEFINE_CONST_FUN_OBJ_1(poll_dump_obj, poll_dump);
+
STATIC const mp_rom_map_elem_t poll_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_register), MP_ROM_PTR(&poll_register_obj) },
{ MP_ROM_QSTR(MP_QSTR_unregister), MP_ROM_PTR(&poll_unregister_obj) },
{ MP_ROM_QSTR(MP_QSTR_modify), MP_ROM_PTR(&poll_modify_obj) },
{ MP_ROM_QSTR(MP_QSTR_poll), MP_ROM_PTR(&poll_poll_obj) },
{ MP_ROM_QSTR(MP_QSTR_ipoll), MP_ROM_PTR(&poll_ipoll_obj) },
+// { MP_ROM_QSTR(MP_QSTR_dump), MP_ROM_PTR(&poll_dump_obj) },
};
STATIC MP_DEFINE_CONST_DICT(poll_locals_dict, poll_locals_dict_table);