diff --git a/nestkernel/connection_manager.cpp b/nestkernel/connection_manager.cpp index 2e29751f12..d8a8fbe365 100644 --- a/nestkernel/connection_manager.cpp +++ b/nestkernel/connection_manager.cpp @@ -397,6 +397,13 @@ nest::ConnectionManager::connect( index sgid, return; } + if ( target->one_node_per_process() ) + { + // connection to music proxy or similar device with one node per process. + connect_( *source, *target, sgid, target_thread, syn, d, w ); + return; + } + // make sure connections are only created on the thread of the device if ( ( source->get_thread() != target_thread ) && ( source->has_proxies() ) ) @@ -459,6 +466,13 @@ nest::ConnectionManager::connect( index sgid, return; } + if ( target->one_node_per_process() ) + { + // connection to music proxy or similar device with one node per process. + connect_( *source, *target, sgid, target_thread, syn, params, d, w ); + return; + } + // make sure connections are only created on the thread of the device if ( ( source->get_thread() != target_thread ) && ( source->has_proxies() ) ) @@ -527,6 +541,13 @@ nest::ConnectionManager::connect( index sgid, return false; } + if ( target->one_node_per_process() ) + { + // connection to music proxy or similar device with one node per process. + connect_( *source, *target, sgid, target_thread, syn, params ); + return true; + } + // make sure connections are only created on the thread of the device if ( ( source->get_thread() != target_thread ) && ( source->has_proxies() ) ) diff --git a/testsuite/musictests/test_event_proxies_issue-696.music b/testsuite/musictests/test_event_proxies_issue-696.music new file mode 100644 index 0000000000..4a25a521a9 --- /dev/null +++ b/testsuite/musictests/test_event_proxies_issue-696.music @@ -0,0 +1,33 @@ +/* + * test_event_proxies_issue-696.music + * + * This file is part of NEST. + * + * Copyright (C) 2004 The NEST Initiative + * + * NEST is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * NEST is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEST. If not, see . + * + */ + +[sender] + binary=nest + np=1 + args=test_event_proxies_issue-696_sender.sli + +[receiver] + binary=nest + np=1 + args=test_event_proxies_issue-696_receiver.sli + +sender.out -> receiver.in [11] diff --git a/testsuite/musictests/test_event_proxies_issue-696_receiver.sli b/testsuite/musictests/test_event_proxies_issue-696_receiver.sli new file mode 100644 index 0000000000..44b9990f6f --- /dev/null +++ b/testsuite/musictests/test_event_proxies_issue-696_receiver.sli @@ -0,0 +1,53 @@ +/* + * test_event_proxies_issue-696_receiver.sli + * + * This file is part of NEST. + * + * Copyright (C) 2004 The NEST Initiative + * + * NEST is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * NEST is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEST. If not, see . + * + */ + +(unittest) run +/unittest using + +statusdict/have_music :: not { exit_test_gracefully } if + +M_ERROR setverbosity + +11 /N_NEURONS Set + +/subnet Create /NG Set +NG ChangeSubnet +/iaf_psc_alpha N_NEURONS Create pop +0 ChangeSubnet +NG GetGlobalNodes /neurons Set + +/subnet Create /INP Set +INP ChangeSubnet +/music_event_in_proxy N_NEURONS Create pop +0 ChangeSubnet +INP GetGlobalNodes /inputs Set + +inputs +{ + /channel Set + /n Set + n << /port_name (in) /music_channel channel >> SetStatus + n neurons channel get << /weight 750.0 >> Connect +} +forallindexed + +1 Simulate diff --git a/testsuite/musictests/test_event_proxies_issue-696_sender.sli b/testsuite/musictests/test_event_proxies_issue-696_sender.sli new file mode 100644 index 0000000000..f97268d233 --- /dev/null +++ b/testsuite/musictests/test_event_proxies_issue-696_sender.sli @@ -0,0 +1,65 @@ +/* + * test_event_proxies_issue-696_sender.sli + * + * This file is part of NEST. + * + * Copyright (C) 2004 The NEST Initiative + * + * NEST is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * NEST is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEST. If not, see . + * + */ + +(unittest) run +/unittest using + +statusdict/have_music :: not { exit_test_gracefully } if + +M_ERROR setverbosity + +10 /N_THREADS Set +11 /N_NEURONS Set + +0 << /local_num_threads N_THREADS /resolution 0.1 >> SetStatus + +/subnet Create /SNG Set +SNG ChangeSubnet +/spike_generator N_NEURONS Create pop +0 ChangeSubnet +SNG GetGlobalNodes /generators Set + +/subnet Create /PNG Set +PNG ChangeSubnet +/parrot_neuron N_NEURONS Create pop +0 ChangeSubnet +PNG GetGlobalNodes /neurons Set +generators +{ + /i Set /sg Set + sg << /spike_times [0.1 0.2 0.3] >> SetStatus + sg neurons i get << /delay 0.1 >> Connect +} +forallindexed + +/music_event_out_proxy Create /meop Set +meop << /port_name (out) >> SetStatus + +neurons +{ + /channel Set + /n Set + n meop << /music_channel channel >> Connect +} +forallindexed + +1 Simulate