On March 11, 2015 2:37:32 PM EDT, Jeff Haran <Jeff.Haran@xxxxxxxxxx> wrote: >-----Original Message----- >From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx >[mailto:kernelnewbies-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of >Valdis.Kletnieks@xxxxxx >Sent: Wednesday, March 11, 2015 10:00 AM >To: Nicholas Mc Guire >Cc: Bj??rn Mork; kernelnewbies@xxxxxxxxxxxxxxxxx >Subject: Re: confusing code....whats the point of this construct ? > >On Wed, 11 Mar 2015 17:46:56 +0100, Nicholas Mc Guire said: > >> ret = ({ long __ret = (5*250); >> do { _cond_resched(); } while (0); >> if (!({ >> bool __cond = (({ > >>Gaak. >> >> ret = wait_event_timeout(mgr->tx_waitq, >> check_txmsg_state(mgr, txmsg), >> (4 * HZ)); > >>-EGADS - use of macro as a function violates the Principle of Least >Surprise.... >> >>I have to wonder how many other places we've got bugs waiting to >happen because of this.... > >I don't understand the problem here. The caller passes in a condition >to be evaluated in a loop. Many times that condition is quite simple >(e.g. a counter being non-zero). If it was a function the caller would >have to pass in a pointer to a function that does the evaluation, as >in: > >int bar; > >int foo(void) >{ > return bar; >} > >... > > wait_event_interruptible(..., foo, ...); > >Instead of the much simpler: > > wait_event_interruptible(..., bar, ...); > >That latter seems easier to understand and require fewer instructions >to be generated since there is no function call overhead. > >Jeff Haran > > > Due to complaints about this code., I am requesting a vote for me to send in a patch fixing this terribly ugly code. Please let me know about your results for the vote for me making a patch to fix this code. Nick >Kernelnewbies mailing list >Kernelnewbies@xxxxxxxxxxxxxxxxx >http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies