mailbox.h
Include dependency graph for mailbox.h:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"3" [label="list.h" tooltip="list.h"]
"1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.h" fillcolor="#BFBFBF"]
"4" [label="term_typedef.h" tooltip="term_typedef.h"]
"9" [label="utils.h" tooltip="utils.h"]
"5" [label="assert.h" tooltip="assert.h"]
"7" [label="inttypes.h" tooltip="inttypes.h"]
"6" [label="limits.h" tooltip="limits.h"]
"2" [label="stdbool.h" tooltip="stdbool.h"]
"10" [label="stddef.h" tooltip="stddef.h"]
"8" [label="stdint.h" tooltip="stdint.h"]
"11" [label="stdio.h" tooltip="stdio.h"]
"12" [label="stdlib.h" tooltip="stdlib.h"]
"3" -> "2" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
"1" -> "4" [dir=forward tooltip="include"]
"1" -> "9" [dir=forward tooltip="include"]
"4" -> "5" [dir=forward tooltip="include"]
"4" -> "6" [dir=forward tooltip="include"]
"4" -> "7" [dir=forward tooltip="include"]
"4" -> "8" [dir=forward tooltip="include"]
"9" -> "7" [dir=forward tooltip="include"]
"9" -> "2" [dir=forward tooltip="include"]
"9" -> "10" [dir=forward tooltip="include"]
"9" -> "11" [dir=forward tooltip="include"]
"9" -> "12" [dir=forward tooltip="include"]
}
This graph shows which files directly or indirectly include mailbox.h:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"49" [label="/__w/AtomVM/AtomVM/src/libAtomVM/avmpack.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/avmpack.c"]
"48" [label="/__w/AtomVM/AtomVM/src/libAtomVM/avmpack.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/avmpack.h"]
"5" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c"]
"4" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h"]
"60" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.c"]
"59" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.h"]
"2" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.c"]
"3" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.h"]
"12" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c"]
"11" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h"]
"50" [label="/__w/AtomVM/AtomVM/src/libAtomVM/defaultatoms.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/defaultatoms.h"]
"51" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dictionary.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dictionary.c"]
"62" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dictionary.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dictionary.h"]
"14" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c"]
"52" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.h"]
"15" [label="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h"]
"25" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c"]
"63" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets.h"]
"53" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets_multimap.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets_multimap.c"]
"54" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets_multimap.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets_multimap.h"]
"64" [label="/__w/AtomVM/AtomVM/src/libAtomVM/exportedfunction.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/exportedfunction.h"]
"6" [label="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.c"]
"65" [label="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/external_term.h"]
"16" [label="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c"]
"47" [label="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.h"]
"28" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c"]
"27" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h"]
"30" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c"]
"26" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h"]
"7" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c"]
"61" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h"]
"17" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.c"]
"34" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit_stream_flash.h"]
"32" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c"]
"1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.h" fillcolor="#BFBFBF"]
"13" [label="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c"]
"8" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.c"]
"33" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.h"]
"9" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c"]
"38" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h"]
"18" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c"]
"19" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h"]
"29" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c"]
"39" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h"]
"20" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c"]
"40" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h"]
"21" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c"]
"41" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h"]
"66" [label="/__w/AtomVM/AtomVM/src/libAtomVM/overflow_helpers.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/overflow_helpers.h"]
"35" [label="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h"]
"44" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.c"]
"45" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.h"]
"43" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c"]
"42" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h"]
"22" [label="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c"]
"55" [label="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.h"]
"23" [label="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c"]
"57" [label="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.h"]
"24" [label="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c"]
"56" [label="/__w/AtomVM/AtomVM/src/libAtomVM/resources.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/resources.h"]
"46" [label="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h"]
"10" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c"]
"36" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h"]
"37" [label="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h"]
"31" [label="/__w/AtomVM/AtomVM/src/libAtomVM/term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/term.c"]
"58" [label="/__w/AtomVM/AtomVM/src/libAtomVM/term.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/term.h"]
"48" -> "49" [dir=back tooltip="include"]
"48" -> "16" [dir=back tooltip="include"]
"48" -> "17" [dir=back tooltip="include"]
"48" -> "9" [dir=back tooltip="include"]
"4" -> "5" [dir=back tooltip="include"]
"4" -> "6" [dir=back tooltip="include"]
"4" -> "7" [dir=back tooltip="include"]
"4" -> "8" [dir=back tooltip="include"]
"4" -> "9" [dir=back tooltip="include"]
"4" -> "10" [dir=back tooltip="include"]
"59" -> "5" [dir=back tooltip="include"]
"59" -> "60" [dir=back tooltip="include"]
"59" -> "6" [dir=back tooltip="include"]
"59" -> "30" [dir=back tooltip="include"]
"59" -> "7" [dir=back tooltip="include"]
"59" -> "61" [dir=back tooltip="include"]
"59" -> "9" [dir=back tooltip="include"]
"3" -> "4" [dir=back tooltip="include"]
"3" -> "2" [dir=back tooltip="include"]
"3" -> "11" [dir=back tooltip="include"]
"3" -> "14" [dir=back tooltip="include"]
"3" -> "15" [dir=back tooltip="include"]
"3" -> "25" [dir=back tooltip="include"]
"3" -> "6" [dir=back tooltip="include"]
"3" -> "16" [dir=back tooltip="include"]
"3" -> "26" [dir=back tooltip="include"]
"3" -> "7" [dir=back tooltip="include"]
"3" -> "17" [dir=back tooltip="include"]
"3" -> "32" [dir=back tooltip="include"]
"3" -> "13" [dir=back tooltip="include"]
"3" -> "8" [dir=back tooltip="include"]
"3" -> "33" [dir=back tooltip="include"]
"3" -> "9" [dir=back tooltip="include"]
"3" -> "38" [dir=back tooltip="include"]
"3" -> "18" [dir=back tooltip="include"]
"3" -> "29" [dir=back tooltip="include"]
"3" -> "20" [dir=back tooltip="include"]
"3" -> "21" [dir=back tooltip="include"]
"3" -> "44" [dir=back tooltip="include"]
"3" -> "45" [dir=back tooltip="include"]
"3" -> "42" [dir=back tooltip="include"]
"3" -> "23" [dir=back tooltip="include"]
"3" -> "24" [dir=back tooltip="include"]
"3" -> "46" [dir=back tooltip="include"]
"3" -> "36" [dir=back tooltip="include"]
"3" -> "31" [dir=back tooltip="include"]
"11" -> "12" [dir=back tooltip="include"]
"11" -> "7" [dir=back tooltip="include"]
"11" -> "13" [dir=back tooltip="include"]
"50" -> "5" [dir=back tooltip="include"]
"50" -> "2" [dir=back tooltip="include"]
"50" -> "51" [dir=back tooltip="include"]
"50" -> "14" [dir=back tooltip="include"]
"50" -> "25" [dir=back tooltip="include"]
"50" -> "6" [dir=back tooltip="include"]
"50" -> "16" [dir=back tooltip="include"]
"50" -> "30" [dir=back tooltip="include"]
"50" -> "7" [dir=back tooltip="include"]
"50" -> "17" [dir=back tooltip="include"]
"50" -> "8" [dir=back tooltip="include"]
"50" -> "9" [dir=back tooltip="include"]
"50" -> "18" [dir=back tooltip="include"]
"50" -> "29" [dir=back tooltip="include"]
"50" -> "20" [dir=back tooltip="include"]
"50" -> "21" [dir=back tooltip="include"]
"50" -> "44" [dir=back tooltip="include"]
"50" -> "45" [dir=back tooltip="include"]
"50" -> "22" [dir=back tooltip="include"]
"50" -> "24" [dir=back tooltip="include"]
"50" -> "10" [dir=back tooltip="include"]
"50" -> "31" [dir=back tooltip="include"]
"62" -> "5" [dir=back tooltip="include"]
"62" -> "2" [dir=back tooltip="include"]
"62" -> "51" [dir=back tooltip="include"]
"62" -> "13" [dir=back tooltip="include"]
"62" -> "9" [dir=back tooltip="include"]
"62" -> "20" [dir=back tooltip="include"]
"62" -> "23" [dir=back tooltip="include"]
"52" -> "14" [dir=back tooltip="include"]
"52" -> "16" [dir=back tooltip="include"]
"52" -> "7" [dir=back tooltip="include"]
"52" -> "9" [dir=back tooltip="include"]
"15" -> "2" [dir=back tooltip="include"]
"15" -> "14" [dir=back tooltip="include"]
"15" -> "16" [dir=back tooltip="include"]
"15" -> "17" [dir=back tooltip="include"]
"15" -> "13" [dir=back tooltip="include"]
"15" -> "9" [dir=back tooltip="include"]
"15" -> "18" [dir=back tooltip="include"]
"15" -> "19" [dir=back tooltip="include"]
"15" -> "20" [dir=back tooltip="include"]
"15" -> "21" [dir=back tooltip="include"]
"15" -> "22" [dir=back tooltip="include"]
"15" -> "23" [dir=back tooltip="include"]
"15" -> "24" [dir=back tooltip="include"]
"63" -> "25" [dir=back tooltip="include"]
"63" -> "47" [dir=back tooltip="include"]
"63" -> "9" [dir=back tooltip="include"]
"54" -> "25" [dir=back tooltip="include"]
"54" -> "53" [dir=back tooltip="include"]
"64" -> "4" [dir=back tooltip="include"]
"64" -> "52" [dir=back tooltip="include"]
"64" -> "61" [dir=back tooltip="include"]
"64" -> "33" [dir=back tooltip="include"]
"64" -> "38" [dir=back tooltip="include"]
"64" -> "35" [dir=back tooltip="include"]
"64" -> "55" [dir=back tooltip="include"]
"65" -> "14" [dir=back tooltip="include"]
"65" -> "6" [dir=back tooltip="include"]
"65" -> "8" [dir=back tooltip="include"]
"65" -> "9" [dir=back tooltip="include"]
"47" -> "48" [dir=back tooltip="include"]
"47" -> "2" [dir=back tooltip="include"]
"47" -> "3" [dir=back tooltip="include"]
"47" -> "50" [dir=back tooltip="include"]
"47" -> "14" [dir=back tooltip="include"]
"47" -> "52" [dir=back tooltip="include"]
"47" -> "53" [dir=back tooltip="include"]
"47" -> "54" [dir=back tooltip="include"]
"47" -> "6" [dir=back tooltip="include"]
"47" -> "16" [dir=back tooltip="include"]
"47" -> "17" [dir=back tooltip="include"]
"47" -> "34" [dir=back tooltip="include"]
"47" -> "13" [dir=back tooltip="include"]
"47" -> "8" [dir=back tooltip="include"]
"47" -> "33" [dir=back tooltip="include"]
"47" -> "9" [dir=back tooltip="include"]
"47" -> "18" [dir=back tooltip="include"]
"47" -> "29" [dir=back tooltip="include"]
"47" -> "39" [dir=back tooltip="include"]
"47" -> "20" [dir=back tooltip="include"]
"47" -> "40" [dir=back tooltip="include"]
"47" -> "21" [dir=back tooltip="include"]
"47" -> "41" [dir=back tooltip="include"]
"47" -> "44" [dir=back tooltip="include"]
"47" -> "45" [dir=back tooltip="include"]
"47" -> "42" [dir=back tooltip="include"]
"47" -> "22" [dir=back tooltip="include"]
"47" -> "55" [dir=back tooltip="include"]
"47" -> "24" [dir=back tooltip="include"]
"47" -> "46" [dir=back tooltip="include"]
"47" -> "10" [dir=back tooltip="include"]
"47" -> "37" [dir=back tooltip="include"]
"27" -> "28" [dir=back tooltip="include"]
"27" -> "29" [dir=back tooltip="include"]
"27" -> "20" [dir=back tooltip="include"]
"27" -> "21" [dir=back tooltip="include"]
"26" -> "5" [dir=back tooltip="include"]
"26" -> "16" [dir=back tooltip="include"]
"26" -> "27" [dir=back tooltip="include"]
"26" -> "30" [dir=back tooltip="include"]
"26" -> "9" [dir=back tooltip="include"]
"26" -> "18" [dir=back tooltip="include"]
"26" -> "29" [dir=back tooltip="include"]
"26" -> "20" [dir=back tooltip="include"]
"26" -> "21" [dir=back tooltip="include"]
"26" -> "22" [dir=back tooltip="include"]
"26" -> "31" [dir=back tooltip="include"]
"61" -> "3" [dir=back tooltip="include"]
"61" -> "7" [dir=back tooltip="include"]
"61" -> "17" [dir=back tooltip="include"]
"61" -> "8" [dir=back tooltip="include"]
"61" -> "33" [dir=back tooltip="include"]
"61" -> "9" [dir=back tooltip="include"]
"34" -> "17" [dir=back tooltip="include"]
"1" -> "2" [dir=back tooltip="include"]
"1" -> "3" [dir=back tooltip="include"]
"1" -> "16" [dir=back tooltip="include"]
"1" -> "47" [dir=back tooltip="include"]
"1" -> "32" [dir=back tooltip="include"]
"1" -> "9" [dir=back tooltip="include"]
"1" -> "20" [dir=back tooltip="include"]
"1" -> "44" [dir=back tooltip="include"]
"1" -> "56" [dir=back tooltip="include"]
"33" -> "4" [dir=back tooltip="include"]
"33" -> "6" [dir=back tooltip="include"]
"33" -> "7" [dir=back tooltip="include"]
"33" -> "17" [dir=back tooltip="include"]
"33" -> "34" [dir=back tooltip="include"]
"33" -> "8" [dir=back tooltip="include"]
"33" -> "9" [dir=back tooltip="include"]
"33" -> "35" [dir=back tooltip="include"]
"33" -> "36" [dir=back tooltip="include"]
"33" -> "37" [dir=back tooltip="include"]
"33" -> "31" [dir=back tooltip="include"]
"38" -> "14" [dir=back tooltip="include"]
"38" -> "6" [dir=back tooltip="include"]
"38" -> "7" [dir=back tooltip="include"]
"38" -> "17" [dir=back tooltip="include"]
"38" -> "8" [dir=back tooltip="include"]
"38" -> "9" [dir=back tooltip="include"]
"38" -> "18" [dir=back tooltip="include"]
"38" -> "19" [dir=back tooltip="include"]
"38" -> "29" [dir=back tooltip="include"]
"38" -> "39" [dir=back tooltip="include"]
"38" -> "20" [dir=back tooltip="include"]
"38" -> "40" [dir=back tooltip="include"]
"38" -> "21" [dir=back tooltip="include"]
"38" -> "41" [dir=back tooltip="include"]
"38" -> "42" [dir=back tooltip="include"]
"38" -> "22" [dir=back tooltip="include"]
"38" -> "10" [dir=back tooltip="include"]
"19" -> "16" [dir=back tooltip="include"]
"19" -> "18" [dir=back tooltip="include"]
"39" -> "29" [dir=back tooltip="include"]
"40" -> "20" [dir=back tooltip="include"]
"40" -> "21" [dir=back tooltip="include"]
"41" -> "21" [dir=back tooltip="include"]
"66" -> "5" [dir=back tooltip="include"]
"66" -> "25" [dir=back tooltip="include"]
"35" -> "9" [dir=back tooltip="include"]
"45" -> "28" [dir=back tooltip="include"]
"45" -> "9" [dir=back tooltip="include"]
"45" -> "29" [dir=back tooltip="include"]
"45" -> "20" [dir=back tooltip="include"]
"45" -> "21" [dir=back tooltip="include"]
"45" -> "44" [dir=back tooltip="include"]
"42" -> "43" [dir=back tooltip="include"]
"55" -> "16" [dir=back tooltip="include"]
"55" -> "9" [dir=back tooltip="include"]
"55" -> "29" [dir=back tooltip="include"]
"55" -> "20" [dir=back tooltip="include"]
"55" -> "22" [dir=back tooltip="include"]
"57" -> "16" [dir=back tooltip="include"]
"57" -> "13" [dir=back tooltip="include"]
"57" -> "20" [dir=back tooltip="include"]
"57" -> "21" [dir=back tooltip="include"]
"57" -> "23" [dir=back tooltip="include"]
"57" -> "24" [dir=back tooltip="include"]
"57" -> "58" [dir=back tooltip="include"]
"56" -> "15" [dir=back tooltip="include"]
"56" -> "6" [dir=back tooltip="include"]
"56" -> "16" [dir=back tooltip="include"]
"56" -> "57" [dir=back tooltip="include"]
"56" -> "24" [dir=back tooltip="include"]
"56" -> "58" [dir=back tooltip="include"]
"46" -> "16" [dir=back tooltip="include"]
"46" -> "7" [dir=back tooltip="include"]
"46" -> "32" [dir=back tooltip="include"]
"46" -> "9" [dir=back tooltip="include"]
"46" -> "20" [dir=back tooltip="include"]
"36" -> "7" [dir=back tooltip="include"]
"36" -> "10" [dir=back tooltip="include"]
"37" -> "2" [dir=back tooltip="include"]
"37" -> "16" [dir=back tooltip="include"]
"37" -> "17" [dir=back tooltip="include"]
"37" -> "8" [dir=back tooltip="include"]
"37" -> "9" [dir=back tooltip="include"]
"37" -> "20" [dir=back tooltip="include"]
"37" -> "24" [dir=back tooltip="include"]
"58" -> "5" [dir=back tooltip="include"]
"58" -> "59" [dir=back tooltip="include"]
"58" -> "2" [dir=back tooltip="include"]
"58" -> "3" [dir=back tooltip="include"]
"58" -> "51" [dir=back tooltip="include"]
"58" -> "62" [dir=back tooltip="include"]
"58" -> "14" [dir=back tooltip="include"]
"58" -> "52" [dir=back tooltip="include"]
"58" -> "25" [dir=back tooltip="include"]
"58" -> "63" [dir=back tooltip="include"]
"58" -> "53" [dir=back tooltip="include"]
"58" -> "54" [dir=back tooltip="include"]
"58" -> "64" [dir=back tooltip="include"]
"58" -> "6" [dir=back tooltip="include"]
"58" -> "65" [dir=back tooltip="include"]
"58" -> "16" [dir=back tooltip="include"]
"58" -> "47" [dir=back tooltip="include"]
"58" -> "28" [dir=back tooltip="include"]
"58" -> "30" [dir=back tooltip="include"]
"58" -> "26" [dir=back tooltip="include"]
"58" -> "7" [dir=back tooltip="include"]
"58" -> "61" [dir=back tooltip="include"]
"58" -> "17" [dir=back tooltip="include"]
"58" -> "13" [dir=back tooltip="include"]
"58" -> "8" [dir=back tooltip="include"]
"58" -> "33" [dir=back tooltip="include"]
"58" -> "9" [dir=back tooltip="include"]
"58" -> "18" [dir=back tooltip="include"]
"58" -> "29" [dir=back tooltip="include"]
"58" -> "20" [dir=back tooltip="include"]
"58" -> "21" [dir=back tooltip="include"]
"58" -> "66" [dir=back tooltip="include"]
"58" -> "45" [dir=back tooltip="include"]
"58" -> "55" [dir=back tooltip="include"]
"58" -> "36" [dir=back tooltip="include"]
"58" -> "31" [dir=back tooltip="include"]
}
Mailbox management functions such as send and receive functions.
Mailbox management functions should be used to send messages to a certain process or port and to receive them.
Defines
ATOMIC
TYPEDEF_CONTEXT
TYPEDEF_GLOBALCONTEXT
TYPEDEF_HEAP
TYPEDEF_MAILBOXMESSAGE
TYPEDEF_MESSAGE
Enums
enum MessageType
Values:
enumerator NormalMessage
enumerator KillSignal
enumerator GCSignal
enumerator ProcessInfoRequestSignal
enumerator TrapAnswerSignal
enumerator TrapExceptionSignal
enumerator FlushMonitorSignal
enumerator FlushInfoMonitorSignal
enumerator SetGroupLeaderSignal
enumerator MonitorSignal
enumerator UnlinkIDSignal
enumerator UnlinkIDAckSignal
enumerator UnlinkRemoteIDSignal
enumerator UnlinkRemoteIDAckSignal
enumerator LinkExitSignal
enumerator DemonitorSignal
enumerator MonitorDownSignal
enumerator CodeServerResumeSignal
enumerator AliasMessageSignal
enum process_info_mode_t
Values:
enumerator ProcessInfoSingle
enumerator ProcessInfoList
Functions
void mailbox_init ( Mailbox * mbox )
Initialize the mailbox.
Parameters:
size_t mailbox_len ( Mailbox * mbox )
Compute the mailbox length, in messages.
To be called from the process only.
Parameters:
size_t mailbox_normal_message_len ( Mailbox * mbox )
Compute the number of queued messages in the mailbox, not counting signals.
This is what message_queue_len reports: normal messages plus accepted alias messages not yet converted, which OTP counts as queued even if the alias is deactivated before reception. To be called from the process only.
Parameters:
size_t mailbox_size ( Mailbox * mbox )
Compute the mailbox size, in bytes.
To be called from the process only.
Parameters:
MailboxMessage * mailbox_process_outer_list_native ( Mailbox * mbox )
Process the outer list of messages, ignoring aliases.
Alias-blind variant of mailbox_process_outer_list, for callers that never own an active alias: native (port) processes, context teardown and crashdump. To be called from the process only.
Parameters:
Returns:
the signal messages in received order.
MailboxMessage * mailbox_process_outer_list ( Context * ctx )
Process the outer list of messages, delivering alias messages in send order.
AliasMessageSignals are validated in ctx’s own monitor list and, when the alias is active, converted to normal messages in place so they keep send order relative to plain messages from the same sender. To be called from the process only, while not holding the processes table lock (the reply_demonitor path takes it).
Parameters:
Returns:
the remaining (non-alias) signal messages in received order.
void mailbox_send ( Context * c , term t )
Sends a message to a certain mailbox.
Sends a term to a certain process or port mailbox. Can be called from another process. Cannot be called from a task or from ISR.
Parameters:
void mailbox_send_term_signal ( Context * c , enum MessageType type , term t )
Sends a term-based signal to a certain mailbox.
Parameters:
void mailbox_send_immediate_signal ( Context * c , enum MessageType type , term immediate )
Sends an immediate signal to a certain mailbox.
Parameters:
bool mailbox_send_process_info_request_signal ( Context * c , int32_t sender_pid , process_info_mode_t mode , const term atoms [ ] , size_t atoms_len )
Sends a process info request signal to a certain mailbox.
Parameters:
c – the process context.
sender_pid – the sender of the signal (to get the answer)
mode – whether the answer is a single item tuple or a list of them
atoms – array of atom terms to query
atoms_len – number of atoms in the array
Returns:
true if the signal was sent, false on allocation failure, in which case no answer will ever be sent back
void mailbox_send_ref_signal ( Context * c , enum MessageType type , uint64_t ref_ticks )
Sends a ref signal to a certain mailbox.
Parameters:
void mailbox_send_immediate_ref_signal ( Context * c , enum MessageType type , term immediate , uint64_t ref_ticks )
Sends an immediate and ref signal to a certain mailbox.
Parameters:
void mailbox_send_monitor_signal ( Context * c , enum MessageType type , struct Monitor * monitor )
Sends a ref immediate signal to a certain mailbox.
Parameters:
void mailbox_send_empty_body_signal ( Context * c , enum MessageType type )
Sends an empty body signal to a certain mailbox.
Parameters:
void mailbox_post_message ( Context * c , MailboxMessage * m )
Post a message.
Post a message to a given context. Context gets ownership of the created message.
Parameters:
void mailbox_enqueue_message ( Context * c , MailboxMessage * m )
Enqueue message.
This function does not signal the process to be ready and is only meant to be called from a task by globalcontext_send_message_from_task .
Parameters:
void mailbox_reset ( Mailbox * mbox )
Reset mailbox receive pointer.
To be called from the process only.
Parameters:
void mailbox_next ( Mailbox * mbox )
Advance pointer to next message in a receive loop.
To be called from the process only.
Parameters:
static inline bool mailbox_has_next ( Mailbox * mbox )
Determine if there is a next item in message list.
To be called from the process only.
Parameters:
Returns:
true if peek would succeed.
bool mailbox_peek ( Context * ctx , term * out )
Gets next message from a mailbox (without removing it).
Peek the mailbox and retrieve a term that has been previously queued on a certain process or driver mailbox. To be called from the process only.
Parameters:
ctx – the calling context, owning the mailbox and where the message should be copied to.
out – the allocated term.
Returns:
true if a term was available
MailboxMessage * mailbox_take_message ( Mailbox * mbox )
Take next message from mailbox.
Remove the first message from the mailbox and return it. To be called from the process only. This function is intended for some corner cases, such as certain port drivers.
Parameters:
Message * mailbox_first ( Mailbox * mbox )
Get first message from mailbox.
Get the first message and sets the receive pointer to it so it can be removed later. Used by ports & drivers. To be called from the process only.
Parameters:
Returns:
first message or NULL.
void mailbox_destroy ( Mailbox * mbox , Heap * heap )
Free memory associated with a mailbox.
All messages in the mailbox will be freed or appended to the heap.
Parameters:
MailboxMessage * mailbox_message_create_from_term ( enum MessageType type , term t )
Allocate and serialize a term to a mailbox message.
Can be called from a task or even ISR (provided malloc works).
Parameters:
void mailbox_message_dispose ( MailboxMessage * m , Heap * heap )
Dispose a (processed) mailbox message. The message will be freed or appended to current heap and will be destroyed on garbage collect. This function is called by mailbox_remove and is only needed for signal messages.
Parameters:
Message * mailbox_message_create_normal_message_from_term ( term t )
Allocate and serialize a term to a normal message.
Can be called from a task or even ISR (provided malloc works).
Parameters:
void mailbox_message_dispose_unsent ( Message * m , GlobalContext * global , bool from_task )
Dispose an unsent normal message. The message will be freed.
Parameters:
m – the message to dispose.
global – the global context
from_task – boolean, true if called from a task, false otherwise
static inline void mailbox_remove_message ( Mailbox * mbox , Heap * heap )
Remove next message from mailbox.
Discard a term that has been previously queued on a certain process or driver mailbox. To be called from the process only. Term messages are actually added as fragments to the heap and will be gone at next GC.
Parameters:
void mailbox_crashdump ( Context * ctx )
Output mailbox to stderr for crashdump reporting.
Parameters:
struct MailboxMessage
#include <mailbox.h>
Collaboration diagram for MailboxMessage:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="MailboxMessage" tooltip="MailboxMessage" fillcolor="#BFBFBF"]
"1" -> "1" [dir=forward tooltip="usage"]
}
struct Message
#include <mailbox.h>
Collaboration diagram for Message:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" [label="Message" tooltip="Message" fillcolor="#BFBFBF"]
"2" -> "2" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
}
Public Members
MailboxMessage base
term message
term * heap_end
term storage [ ]
struct TermSignal
#include <mailbox.h>
Collaboration diagram for TermSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" [label="TermSignal" tooltip="TermSignal" fillcolor="#BFBFBF"]
"2" -> "2" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
}
Public Members
MailboxMessage base
term signal_term
term * heap_end
term storage [ ]
struct ImmediateSignal
#include <mailbox.h>
Collaboration diagram for ImmediateSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="ImmediateSignal" tooltip="ImmediateSignal" fillcolor="#BFBFBF"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" -> "2" [dir=forward tooltip="usage"]
"2" -> "2" [dir=forward tooltip="usage"]
}
struct ProcessInfoRequestSignal
#include <mailbox.h>
Collaboration diagram for ProcessInfoRequestSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" [label="ProcessInfoRequestSignal" tooltip="ProcessInfoRequestSignal" fillcolor="#BFBFBF"]
"2" -> "2" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
}
struct RefSignal
#include <mailbox.h>
Collaboration diagram for RefSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" [label="RefSignal" tooltip="RefSignal" fillcolor="#BFBFBF"]
"2" -> "2" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
}
struct ImmediateRefSignal
#include <mailbox.h>
Collaboration diagram for ImmediateRefSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="ImmediateRefSignal" tooltip="ImmediateRefSignal" fillcolor="#BFBFBF"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" -> "2" [dir=forward tooltip="usage"]
"2" -> "2" [dir=forward tooltip="usage"]
}
struct MonitorPointerSignal
#include <mailbox.h>
Collaboration diagram for MonitorPointerSignal:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"4" [label="ListHead" tooltip="ListHead"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"3" [label="Monitor" tooltip="Monitor"]
"1" [label="MonitorPointerSignal" tooltip="MonitorPointerSignal" fillcolor="#BFBFBF"]
"4" -> "4" [dir=forward tooltip="usage"]
"2" -> "2" [dir=forward tooltip="usage"]
"3" -> "4" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
"1" -> "3" [dir=forward tooltip="usage"]
}
struct Mailbox
#include <mailbox.h>
Collaboration diagram for Mailbox:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="Mailbox" tooltip="Mailbox" fillcolor="#BFBFBF"]
"2" [label="MailboxMessage" tooltip="MailboxMessage"]
"1" -> "2" [dir=forward tooltip="usage"]
"2" -> "2" [dir=forward tooltip="usage"]
}