4 ms·
You're forgetting there appears to be a race condition at play. The third transaction was marked as canceled because the second has not finished processing and
by LocalPCGuy 4y ago
You're forgetting there appears to be a race condition at play. The third transaction was marked as canceled because the second has not finished processing and so is still counting against the total. There is no guarantee the govt system will check that again once 2 completes (in fact, I'd be shocked if it did). And by the time both 2 and 3 process, the window to buy looks like it will be closed per the author's post.
- smachiz 4y agoThere is no race condition. The order won’t actually matter here - but even if it did, the “right” thing will happen either way depending on which interpretation of the email you have. The third transaction got the same response as the second. Which would actually imply that the common reading of that email (he’s getting $25 back from the second deposit is correct, and he’s going to get the entire $9,975 back from the third.)
- woojoo666 4y agoI'm not so sure that the author currently has 10k in bonds. The pseudo-code for the purchasing backend might just look like totalReceived = totalReceived + transactionAmount if (totalReceived > 10000) { sendEmail() wait10weeks() refund(transactionAmount) totalReceived = totalReceived - transactionAmount } else { buybonds(transactionAmount) } In which case, the author would have 20k locked up in the government and only $25 invested. A horrible way to write a system of course but if the system takes 10 weeks to process a refund then it doesn't sound like the system is that great to begin with