phpdoc-parser icon indicating copy to clipboard operation
phpdoc-parser copied to clipboard

Get rid of sleep pauses in process

Open Rarst opened this issue 10 years ago • 7 comments

I tried several times and cannot trace back to technical reasons for sleep( 3 ) every ten items.

Can someone explain what exactly it is doing? Farthest I got @rmccue said @paulgibbs (?) added it to handle race condition (??).

Rarst avatar Dec 18 '14 13:12 Rarst

Do we really need to have a sleep of 3 seconds to stop this race condition? Completely removing the sleep might break something. But if we put it at 1 second it will run a little bit faster if it parses without the --quick flag.

atimmer avatar May 03 '15 17:05 atimmer

Personally I am yet to see something break with quick run. And yet to hear someone coherently remember and explain which race condition this is supposedly handling. :)

Rarst avatar May 03 '15 18:05 Rarst

I have no objection to removing the sleep and I have never had any problems with quick runs, it's just that I forget the quick flag sometimes.

atimmer avatar May 03 '15 19:05 atimmer

Ahoy. So, originally, @rmccue had built the first version of this parser, and for some reason I can't remember, I didn't think it was very good, so I built my own version inspired by Ryan's, for some stuff on WordPress.com. I introduced the sleeps to work around some interesting issues that the parser had, at that point in time, on the WordPress.com environment (I ran it on a huge chunk of code to test it, and it caused a lag in the replication of that database, which awoke the scary systems team!). My fork was eventually merged back into this project or replaced it (again, I can't remember), and that's the story of the sleep.

paulgibbs avatar May 06 '15 15:05 paulgibbs

Attached PR: #200 simply changes the $skip_sleep parameter defaults to true. We could also look at some kind of constant to force it and/or support back-compat, but this accomplishes the basic spirit of the request.

DrewAPicture avatar Jun 07 '18 15:06 DrewAPicture

The sleep is also needed on w.org to avoid db replication lag.

iandunn avatar Sep 06 '22 22:09 iandunn

--quick is the default when it's used with the developer.wordpress.org theme on a local environment:

https://github.com/WordPress/wporg-developer/blob/83844d1854c8b6ed64eb02e100f50929ea5bb011/source/wp-content/themes/wporg-developer-2023/inc/cli-commands.php#L168-L171

Bringing something like that over here would be reasonable.

(You'll never replicate any issues that this was trying to solve, unless you're using a replicated mysql environment)

dd32 avatar Jan 16 '24 05:01 dd32