>>>>> Richard Braun <rbr...@sceen.net> writes: >>>>> On Fri, Dec 27, 2013 at 04:28:33PM +0100, Marin Ramesa wrote:
[…] >> +static futex_hash_table_t table = NULL; >> +static unsigned int max_hash_val = 0; > I strongly recommend using the module namespace for everything > global, including static variables and functions. Otherwise ... >> +int futex_init(futex_t futex, int *address) >> +{ >> + if (table == NULL) { > ... you may wonder where things such as table here are from. This is actually a simple question in C. It may be different in other languages, even if considered “close” to C, but here, ‘table’ suggests a static global variable almost invariably. That being said, “namespacing” such identifiers wouldn’t hurt. […] >> + if ((table->futex_elements = >> (futex_t)kalloc((max_hash_val+1)*sizeof(futex_t))) == NULL) { > Another bad practice warning, don't put statements with side effects > in conditional expressions. I tend to disagree on this one, on more or less the same grounds I’m recommending the use of some_variable += another_variable instead of some_variable = some_variable + another_variable. Arguably, the use of the result of an assignment in a test makes the intent /clearer,/ and saves one of a silly mistake of assigning to one variable, and then using some another (say, one with a similar name) in the test just a line or so below. […] -- FSF associate member #7257