Juha Heinanen writes: > each time when t_relay is called (perhaps with a new "serial fork" > parameter), it would serve the > next set of branches that have the highest q value and then mark those > as served in dset.c branches array.
if that is too much to ask, then how about adding an int "status" field to branch struct and include it also as a new get_branch parameter. in addition, there would be a new dset.h function that can be used to set status value of a branch. initial value of status field for each branch would be zero. when t_relay is called, it always serves those branches whose status field value is zero thus retaining backwards compatibility. next_contacts/next_branches would then be able to do their job by manipulating status field values. for example, when load_contacts/serialize_branches is called, it would set "status" of each branch to 1 (unused). each time next_contacts/next_branches is called, it would set each zero valued branch to -1 (used) and then select the highest unused q value branches and set their status field value to zero. if there is no unused branches left, next_contacts/next_branches would return -1. i don't know the internals of tm module, but i would think that adding a status==0 test before a branch is served, would not be a big deal. comments? -- juha _______________________________________________ Devel mailing list Devel@openser.org http://openser.org/cgi-bin/mailman/listinfo/devel