libURL gone mad

Phil Davis revdev at pdslabs.net
Fri Sep 2 12:51:16 EDT 2016


Richard,
You could always write yourself a curl wrapper... just sayin'.

Phil Davis


On 9/2/16 9:28 AM, Richard Gaskin wrote:
> Charles Warwick wrote:
>
> > I would like to resolve as many libUrl reliability issues as possible
> > in the community edition as well.
> >
> > Having worked on the tsNet libUrl wrapper, I have some ideas about
> > what is going on but what always helps is a sample script that can
> > reproduce the problem.
>
> Thanks for your interest.  I've modded my libURL and have been 
> experimenting, will deliver a sample stack soon.
>
> Thus far I've found that your libURL function is much more reliable 
> than the recommended flag option, but still problematic in some cases 
> unless I slow things down with the introduction of an 
> otherwise-unnecessary wait.
>
> Chipp Walters uses a brute-force method since picked up by Jacque and 
> others in which he calls libURL in a repeat loop until it returns a 
> meaningful result.  Sad to have to work that hard.
>
> At the heart of why so many people seem to be having problems with 
> libURL is that the so-called "blocking" form only blocks the current 
> execution instance of the handler calling libURL. Messages still 
> happen, any handlers that are calling libURL are re-entrant, and 
> that's where people are seeing blocked connections, engine hangs, and 
> occasional cursor locking (WTH is up with that?).
>
> The ideal solution would be for an option to have true blocking, 
> without the semi-quasi-difficult-to-predict-exactly-what's-happening 
> form of threading in place for the so-called "blocking" form offered 
> currently.
>
> Those who need non-blocking can use "load url".  Works fine, at least 
> for GET.
>
> Maybe the issue is that POST doesn't currently have a non-blocking 
> form, so the design in place now attempts to hit some mystifying 
> middle path between true blocking and truly async behavior, hitting 
> neither quit spot-on.
>
> I'll continue my experiments with various permutions, including 
> Chipp's now-famous hammer-on-it-until-it-behaves option, and see if I 
> can come up with something that doesn't require slowing down the 
> workflow with an otherwise-unnecessary wait statement.
>
> It's not a long wait (right now the shortest wait that prevent hangs 
> is around 250 ms), but the issue of preventing re-entrance remains a 
> challenge.
>
> I may wind up keeping a checksum hash of the url + POST data, 
> monitored in a timer to prevent duplicate attempts from happening too 
> close together.   Seems a lot of work, though, for something where the 
> code would be MUCH simpler if we only have a truly blocking GET and 
> POST option.
>

-- 
Phil Davis





More information about the use-livecode mailing list