Skip to content

Commit

Permalink
Support PROTECT via _NMODLMUTEX{,UN}LOCK.
Browse files Browse the repository at this point in the history
  • Loading branch information
1uc committed Nov 12, 2024
1 parent 6b371a2 commit 2d108b6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/codegen/codegen_neuron_cpp_visitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1103,6 +1103,7 @@ void CodegenNeuronCppVisitor::print_neuron_includes() {
printer->add_multi_line(R"CODE(
#include "mech_api.h"
#include "neuron/cache/mechanism_range.hpp"
#include "nmodlmutex.h"
#include "nrniv_mf.h"
#include "section_fwd.hpp"
)CODE");
Expand Down Expand Up @@ -3063,6 +3064,14 @@ void CodegenNeuronCppVisitor::visit_for_netcon(const ast::ForNetcon& node) {
printer->pop_block();
}

void CodegenNeuronCppVisitor::visit_protect_statement(const ast::ProtectStatement& node) {
printer->add_line("_NMODLMUTEXLOCK");
printer->add_indent();
node.get_expression()->accept(*this);
printer->add_text(";");
printer->add_line("_NMODLMUTEXUNLOCK");
}


} // namespace codegen
} // namespace nmodl
1 change: 1 addition & 0 deletions src/codegen/codegen_neuron_cpp_visitor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,7 @@ class CodegenNeuronCppVisitor: public CodegenCppVisitor {
void visit_for_netcon(const ast::ForNetcon& node) override;
void visit_longitudinal_diffusion_block(const ast::LongitudinalDiffusionBlock& node) override;
void visit_lon_diffuse(const ast::LonDiffuse& node) override;
void visit_protect_statement(const ast::ProtectStatement& node) override;

public:
/****************************************************************************************/
Expand Down

0 comments on commit 2d108b6

Please sign in to comment.