static interpreter_t* interpreter(dfsch_object_t* obj){ interpreter_t* i = DFSCH_ASSERT_TYPE(obj, DFSCH_TCL_INTERPRETER_TYPE); if (!i->active){ dfsch_error("Interpreter already destroyed", obj); } check_apartment(i); return i; }
dfsch_strbuf_t* dfsch_string_output_port_value(dfsch_object_t* port){ string_output_port_t* p; dfsch_strbuf_t* buf; p = (string_output_port_t*)DFSCH_ASSERT_TYPE(port, (dfsch_type_t*) DFSCH_STRING_OUTPUT_PORT_TYPE); pthread_mutex_lock(p->mutex); buf = sl_value_strbuf(p->list); pthread_mutex_unlock(p->mutex); return buf; }