After successfully uploading an asset as a single packet, any subsequent attempt to upload an asset results in an exception with the message "Timeout waiting for previous asset upload to begin" (thrown from line 652 of AssetManager.cs).
After delving (admittedly shallowly) into the libsecondlife source, it looks to me like the basic problem is that a single packet upload never Sets PendingUploadEvent, presumably because no request xfer packet is ever received for such an upload.
-
-
-
-
-
- ADDITIONAL INFORMATION ******
I was thinking that something along the lines of
if (upload.Transferred == upload.Size)
PendingUploadEvent.Set();
immediately following the SendPacket line in RequestUpload (line 647) might do the trick, but then I remembered that there is another side-effect to this general issue, and that is the fact that single packet uploads never fire an AssetUploaded event. With my limited knowledge of libsecondlife, I'm not confident to suggest a better/more general fix for this issue.
As far as OnAssetUploaded not being fired, check if that is still an issue. If it is, there should at least be a warning message printing out now that you can paste here.