| /* TODO(benh): Improve link/connection management. For example, make |
| links be about sockets. Then see whether or not already connected |
| sockets can be used for sending a message back (without opening a |
| new socket first). */ |
| |
| /* TODO(benh): When a link fails, try and reconnect a configurable |
| number of times before you just assume the link is dead. */ |
| |
| /* TODO(benh): Fix link functionality (processes need to send |
| process_exit message since a dead process on one node might not |
| know that a process on another node linked with it). */ |
| |
| /* TODO(benh): What happens when a remote link exits? Do we close the |
| socket correclty?. */ |
| |
| /* TODO(benh): Handle/Enable forking. */ |
| |
| /* TODO(benh): Use multiple processing threads (do process affinity). */ |
| |
| /* TODO(benh): Better error handling (i.e., warn if re-spawn process |
| instead of just returning bad pid). */ |
| |
| /* TODO(benh): Use different backends for files and sockets. */ |
| |
| /* TODO(benh): Allow messages to be received out-of-order (i.e., allow |
| someone to do a receive with a message id and let other messages |
| queue until a message with that message id is received). */ |
| |
| /* TODO(benh): LinkManager::link and LinkManager::send are pretty big |
| functions, we could probably create some queue that the I/O thread |
| checks for sending messages and creating links instead ... that |
| would probably be faster, and have less contention for the mutex |
| (that might mean we can eliminate contention for the mutex!). */ |