Subject: | Crash during concurrent ADC+GPIO access on MAX11200 |
Running the UI test program:
$ pangoterm-no-stderr perl -Mblib examples/tickit-ui-adc.pl --chip MAX11200 --reference 2.048
...
it will often crash on an attempt to adjust GPIO pins if that coïncides with reading the ADC:
BEGIN read_adc
Show quoted text
>> BEGIN read_register(4)
>> END read_register(4)
END read_adc
Show quoted text>> BEGIN read_register(2)
>> END read_register(2)
>> BEGIN command
>> END command
BEGIN read_adc
Show quoted text>> BEGIN read_register(4)
>> END read_register(4)
END read_adc
Show quoted text>> BEGIN read_register(2)
>> END read_register(2)
>> BEGIN command
>> END command
BEGIN read_adc
Show quoted text>> BEGIN read_register(4)
>> END read_register(4)
END read_adc
Show quoted text>> BEGIN read_register(2)
BEGIN write_gpios
Show quoted text>> BEGIN write_register(2)
Future=HASH(0x55c75bea4b08) is not yet complete and does not provide ->await at /home/leo/lib/perl5/App/Device/Chip/UI/GPIOBox.pm line 100.
Show quoted text>> END read_register(2)
Suspended async sub Device::Chip::MAX11200::_GPIOAdapter::read_gpios lost its returning future at /home/leo/src/perl/Device-Chip-AnalogConverters/blib/lib/Device/Chip/MAX11200.pm line 501.
Show quoted text>> END write_register(2)
END write_gpios
Suspended async sub Device::Chip::MAX11200::_GPIOAdapter::write_gpios lost its returning future at /home/leo/src/perl/Device-Chip-AnalogConverters/blib/lib/Device/Chip/MAX11200.pm line 477.
Attempt to free unreferenced scalar: SV 0x55c75bd08ff8, Perl interpreter: 0x55c75aa122a0 at /usr/share/perl5/Future.pm line 406.
Attempt to free unreferenced scalar: SV 0x55c75bd04f08, Perl interpreter: 0x55c75aa122a0 at /usr/share/perl5/Future.pm line 406.
Attempt to free unreferenced scalar: SV 0x55c75bce9818, Perl interpreter: 0x55c75aa122a0 at /usr/share/perl5/Future.pm line 633.
Attempt to free unreferenced scalar: SV 0x55c75bd08ff8, Perl interpreter: 0x55c75aa122a0 at /usr/share/perl5/Future.pm line 633.
--
Paul Evans