The threadedContractMaintenance thread was pretty opaque, and had some areas related to funding that were not very understandable, and probably not correct. I refactored the way that the loop checks for funds remaining, and I broke some of the more complex pieces of logic out into their own functions.
I think the tests are passing, though they actually keep timing out on my machine. The siatest renter tests seem to be taking more than 500 seconds, but not because one is deadlocked, rather by the time the later tests are going, the earlier tests have already pushed the timer over 400 seconds.
The
threadedContractMaintenance
thread was pretty opaque, and had some areas related to funding that were not very understandable, and probably not correct. I refactored the way that the loop checks for funds remaining, and I broke some of the more complex pieces of logic out into their own functions.I think the tests are passing, though they actually keep timing out on my machine. The siatest renter tests seem to be taking more than 500 seconds, but not because one is deadlocked, rather by the time the later tests are going, the earlier tests have already pushed the timer over 400 seconds.