c/src/proactor/epoll.c (29 lines): - line 50: TODO: doc new work: warm (assigned), earmarked (assigned), runnables (unordered), sched_ready - line 52: TODO: document role of sched_pending and how sched_XXX (i.e. sched_interrupt) - line 54: TODO: document task.working duration can be long: from xxx_process() to xxx_done() or null batch. - line 101: // TODO: logging in general - line 170: // TODO: check for error, return bool or just log? - line 171: // TODO: is EPOLL_CTL_DEL ever needed beyond auto de-register when ee->fd is closed? - line 589: * TODO: replace mutex with atomic load/store - line 735: /* TODO aconway 2017-06-08: we should also call proactor_rearm_overflow after a fixed delay, - line 1079: // TODO: revise transport API to allow similar efficient access to transport output - line 1291: goto retry; // TODO: get rid of goto without adding more locking - line 1329: (void)fcntl(sock, F_SETFL, flags); // TODO: check for error - line 1364: start_polling(ee, efd); // TODO: check for error - line 1422: assert(pc); // TODO: memory safety - line 1424: if (err) { /* TODO aconway 2017-09-13: errors must be reported as events */ - line 1428: // TODO: check case of proactor shutting down - line 1530: // TODO: check listener not already listening for this or another proactor - line 1550: assert(l->acceptors); /* TODO aconway 2017-05-05: memory safety */ - line 1583: start_polling(&ps->epoll_io, l->task.proactor->epollfd); // TODO: check for error - line 1731: // TODO: some parallelization of the accept mechanism. - line 1879: assert(pc && p); // TODO: memory safety - line 1885: // TODO: fuller sanity check on input args - line 1962: start_polling(ee, epollfd); // TODO: check for error - line 1986: start_polling(&p->timer_manager.epoll_timer, p->epollfd); // TODO: check for error - line 2362: // TODO: how to reduce? Instrumented near 5 percent of earmarks, 1 in 2000 calls to do_epoll(). - line 2502: // TODO: loop while !poller_suspended, since new work coming - line 2575: perror("epoll_wait"); // TODO: proper log - line 2585: perror("epoll_wait unexpected timeout"); // TODO: proper log - line 2613: // threads looking for work grab from the front. Search less when busy. TODO: - line 2876: // TODO: Need to extend this for raw connections too c/src/proactor/win_iocp.cpp (13 lines): - line 70: // TODO: make all code C++ or all C90-ish - line 142: // Max number of overlapped accepts per listener. TODO: configurable. - line 257: // TODO: more pools (or larger one) when using multiple non-loopback interfaces - line 1601: // TODO: consider some instrumentation to determine an optimal number - line 1768: //TODO: log/err - line 1773: // TODO: log/err - line 2121: // TODO: log err - line 2142: // TODO: handle error - line 2148: // TODO: handle error - line 2723: assert(pc); // TODO: memory safety - line 2729: // TODO: check case of proactor shutting down - line 2790: assert(l->psockets); /* TODO: memory safety */ - line 3181: assert(pc); // TODO: memory safety c/src/tls/openssl.c (11 lines): - line 401: ERR_clear_error(); // TODO: revisit need. - line 408: // TODO: handle a subsequent fatal error here. Just log it? - line 410: // TODO: use tracing here to provide additional error info from the ERR_get_error error queue. - line 491: //TODO: convenience for embedded existing logging. Replace ASAP. - line 634: // TODO: replace: ssl_log(transport, PN_LEVEL_ERROR, "Error: unexpected error - SSL context info not available for peer verify!"); - line 1451: // TODO (gmurthy) - A server side cert subject field can have more than one common name like this - Subject: CN=www.domain1.com, CN=www.domain2.com, see https://bugzilla.mozilla.org/show_bug.cgi?id=380656 - line 1545: /* TODO aconway 2017-10-16: There is no opportunity to clean up the locks as proton has no - line 2022: // TODO: consider allowing application to configure BIO buffer size on encrypt side. - line 2074: // TODO: replacement for: start_ssl_shutdown(transport); // KAG: not sure - this may not be necessary - line 2076: tls->ssl_closed = true; // TODO: still true? - line 2327: // TODO: log it. Should never happen. c/src/ssl/schannel.cpp (5 lines): - line 230: // TODO: if (is_client && session_id != NULL) create or use cached value based on - line 442: // TODO: - line 708: // TODO: This is a probably a stop-gap until allow_unsecured is removed - line 740: // TODO: This is just an untested guess - line 763: // TODO: come up with string for all permutations? python/proton/_reactor.py (5 lines): - line 143: # TODO: need to make this actually return a proxy which catches exceptions and calls - line 194: # TODO: Why do we timeout like this? - line 201: # TODO: This isn't correct if we ever run again - line 207: # TODO: Do this with pipe and write? - line 215: # TODO set up fd to read for wakeups - but problematic on windows c/src/proactor/epoll_raw_connection.c (4 lines): - line 102: start_polling(ee, efd); // TODO: check for error - line 183: // TODO: check case of proactor shutting down - line 220: // TODO: fuller sanity check on input args - line 456: rearm_polling(&rc->psocket.epoll_io, p->epollfd); // TODO: check for error c/src/core/transport.c (4 lines): - line 1690: // TODO: We should really also clamp the first value here, but we're not keeping track of the earliest - line 1878: // TODO: This is messy, because we also have to allow local_max_frame_ to be 0 to mean unlimited - line 3071: // TODO: This could be potentially inefficient if we often pop the output without emptying it - line 3072: // TODO: as we rotate the buffer here if we have any bytes left to write. c/src/ssl/openssl.c (3 lines): - line 890: // TODO: This is a probably a stop-gap until allow_unsecured is removed - line 1570: // TODO (gmurthy) - A server side cert subject field can have more than one common name like this - Subject: CN=www.domain1.com, CN=www.domain2.com, see https://bugzilla.mozilla.org/show_bug.cgi?id=380656 - line 1677: /* TODO aconway 2017-10-16: There is no opportunity to clean up the locks as proton has no python/proton/_handlers.py (3 lines): - line 1200: # TODO: What's the error handling to be here? - line 1226: # TODO: Error? or actually an exception - line 1300: # TODO: Don't understand why we need this now - how can we get PN_TRANSPORT until the connection succeeds? c/src/sasl/cyrus_sasl.c (2 lines): - line 572: // TODO: Should log an error here too, maybe assert here - line 590: // TODO: Should log an error here too, maybe assert here c/src/core/codec.c (2 lines): - line 582: ?: TODO document - line 583: *: TODO document ruby/lib/core/container.rb (2 lines): - line 154: # TODO aconway 2017-11-01: amqps, SSL - line 318: # TODO aconway 2017-11-27: better logging c/tools/msgr-send.c (2 lines): - line 177: // TODO: header decoding? - line 241: // TODO: how do we effectively benchmark header processing overhead??? python/proton/_endpoints.py (2 lines): - line 147: # TODO Hack This is here for some very odd (IMO) backwards compat behaviour - line 214: # TODO: Blacklisted API call go/pkg/proton/wrappers.go (2 lines): - line 46: // TODO aconway 2015-05-05: Documentation for generated types. - line 368: return fmt.Sprintf("(Session)(%p)", s.pn) // TODO aconway 2016-09-12: should print channel number. c/src/proactor/epoll_timer.c (2 lines): - line 360: // TODO: query whether perf gain by doing these system calls outside the lock, perhaps with additional set_reset_mutex. - line 372: // TODO: perhaps become task of one of the timed out timers (if otherwise idle) and process() that task. c/src/proactor/libuv.c (2 lines): - line 308: * TODO: replace mutex with atomic load/store - line 1191: assert(pc); /* TODO aconway 2017-03-31: memory safety */ cpp/src/message.cpp (1 line): - line 107: // TODO aconway 2015-08-10: more efficient pn_message_copy function go/pkg/electron/connection.go (1 line): - line 425: // TODO aconway 2016-09-15: Current pn_sasl C impl config is broken, so all we c/tools/reactor-recv.c (1 line): - line 384: // TODO: multiple addresses? ruby/cproton.i (1 line): - line 333: /* TODO aconway 2018-02-14: Remove RB_BLOCKING_CALL once messenger is deprecated */ c/experimental/raw_plus_tls.c (1 line): - line 21: * TODO: close copy of raw_plus_tls2.c, but generous with buffer usage. c/src/core/emitters.h (1 line): - line 500: // FIXME: Yuck we need to use strlen to find the end of the strings - fix this by changing the signature to take pn_bytes_t[] python/proton/_message.py (1 line): - line 376: def expiry_time(self) -> float: # TODO doc said int c/src/proactor/epoll-internal.h (1 line): - line 199: task_t *resched_cutoff; // last resched task of current poller work snapshot. TODO: superseded by polled_resched_count? python/proton/_utils.py (1 line): - line 456: # TODO: provide stronger interrupt protection on cleanup. See PEP 419 python/proton/_handler.py (1 line): - line 40: # TODO What to do with on_error? cpp/src/connection.cpp (1 line): - line 128: // TODO: error check, too many sessions, no mem... cpp/src/proactor_container_impl.cpp (1 line): - line 231: //TODO: We've lost the error - we should really propagate it here cpp/src/tracing_opentelemetry.cpp (1 line): - line 72: // TODO: Have a delivery context to do the work, instead of having a map to associate the spans with the delivery tags. go/pkg/electron/link.go (1 line): - line 281: filter.Unmarshal(&l.filter) // TODO aconway 2017-06-08: ignoring errors cpp/tests.cmake (1 line): - line 79: # TODO aconway 2018-10-31: Catch2 tests go/pkg/amqp/unmarshal.go (1 line): - line 609: // TODO aconway 2017-11-10: described arrays. cpp/src/messaging_adapter.cpp (1 line): - line 69: // TODO: process session flow data, if no link-specific data, just return. c/src/messenger/messenger.c (1 line): - line 671: m->flags = PN_FLAGS_ALLOW_INSECURE_MECHS; // TODO: Change this back to 0 for the Proton 0.11 release c/tools/reactor-send.c (1 line): - line 327: // TODO: multiple addresses? To keep tests happy, accept multiple for now, c/src/core/consumers.h (1 line): - line 628: // TODO: This is currently a placeholder - maybe not actually needed c/include/proton/tls.h (1 line): - line 541: // TODO: Tracing. Session tickets. cpp/include/proton/types.hpp (1 line): - line 28: // TODO aconway 2016-03-15: described types, described arrays. ruby/lib/core/sender.rb (1 line): - line 63: # TODO aconway 2017-12-05: incompatible, used to return bytes sent. ruby/lib/reactor/container.rb (1 line): - line 71: # TODO aconway 2017-11-29: ssl_domain c/src/reactor/io/windows/write_pipeline.c (1 line): - line 67: // TODO: more pools (or larger one) when using multiple non-loopback interfaces c/tools/msgr-recv.c (1 line): - line 234: // TODO: header decoding? go/pkg/amqp/message.go (1 line): - line 402: // TODO aconway 2015-09-14: Multi-section messages.