[erlang-questions] Confusing about gproc with global properties

Gregory Haskins gregory.haskins@REDACTED
Mon Apr 18 17:29:40 CEST 2011


On 4/16/11 3:39 PM, Ulf Wiger wrote:
> 
> Thinking about it, I'd like to change gproc:select/1 to also include global objects, in other words:
> 
> select(Pat) -> select({all, all}, Pat).
> 
> This is a backwards incompatible change, but I am guessing that not too many people use the global gproc functionality yet, so this should be the time to do it.
> 
> Any objections?

Sounds good to me (of course, I am biased given I do not have any legacy
gproc code ;)

FYI: While investigating this problem I noticed there is an
inconsistency in the QLC interface.  That is:

P <- gproc:table(props) returns both [g,l] matches, whereas

{{p, '_', Key}, Pid, Val} <- gproc:table(props)

OR

{{p, Scope, Key}, Pid, Val} <- gproc:table(props)

return only local scope matches (as I would expect given my new
understanding of "props =:= {local, props}" in the current code base).
I would expect all three forms to return a consistent set ([l] based in
this case, [g,l] after your proposed change).

FWIW: The latter two invoke
https://github.com/esl/gproc/blob/v0.1.2/src/gproc.erl#L1150, whereas
the first form takes a different path due to the way the QLC code builds
the matchhead as an is_var().

I'll take a crack at fixing it and send you a patch, unless this is
considered FAD?

Kind Regards,
-Greg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 267 bytes
Desc: OpenPGP digital signature
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110418/7d1b5b55/attachment.bin>


More information about the erlang-questions mailing list