Thanks guys, I've been looking over what I need the program to do and can't find any reason to continue using threads (I did previously need to share data with the parent and directly between the threads) but with the new version of the program I really don't need any centralized control anymore and the processes can easily share what little data they will be exchanging (only one R/W per hour) via a hash tied to a file (this is even better as it provides a permanent storage of the hash should the system croak for some reason - it'll be able to pick up near where it left off.)