fhunleth/elixir_ale

fast interrupt crashing port

Closed this issue · 1 comments

I am experiencing random crashes when the pin interrupt is hit at a high rate ~ 50hz.

=CRASH REPORT==== 1-Jan-1970::00:00:44 ===
  crasher:
    initial call: Elixir.Gpio:init/1
    pid: <0.409.0>
    registered_name: []
    exception exit: {function_clause,
                        [{'Elixir.Gpio',handle_port,
                             [0,
                              #{'__struct__' => 'Elixir.Gpio.State',
                                callbacks => [<0.408.0>],
                                direction => input,
                                pin => <<"67">>,
                                port => #Port<0.5263>}],
                             [{file,"lib/gpio.ex"},{line,107}]},
                         {gen_server,try_dispatch,4,
                             [{file,"gen_server.erl"},{line,615}]},
                         {gen_server,handle_msg,5,
                             [{file,"gen_server.erl"},{line,681}]},
                         {proc_lib,init_p_do_apply,3,
                             [{file,"proc_lib.erl"},{line,240}]}]}
      in function  gen_server:terminate/7 (gen_server.erl, line 826)
    ancestors: ['Pin67',<0.273.0>,'Elixir.ElementIo.Supervisor',<0.265.0>]
    messages: []
    links: [<0.408.0>,#Port<0.5263>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 987
    stack_size: 27
    reductions: 2697
  neighbours:
    neighbour: [{pid,<0.408.0>},
                  {registered_name,'Pin67'},
                  {initial_call,
                      {'Elixir.ElementIo.GPIO',init,['Argument__1']}},
                  {current_function,{gen,do_call,4}},
                  {ancestors,
                      [<0.273.0>,'Elixir.ElementIo.Supervisor',<0.265.0>]},
                  {messages,
                      [{gpio_interrupt,<<"67">>,rising},
                       {#Ref<0.0.1.3449>,{gpio_interrupt,falling}}]},
                  {links,[<0.273.0>,<0.409.0>]},
                  {dictionary,[]},
                  {trap_exit,false},
                  {status,runnable},
                  {heap_size,2586},
                  {stack_size,28},
                  {reductions,53279}]

Fixed in 3abb519.