Skip to content
Snippets Groups Projects
Commit 1851405e authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

- introduce 1ms wait to reduce CPU usage

- allow changing some gear options during computation
- new option to not merge results at all
parent 4c2988ad
No related branches found
No related tags found
No related merge requests found
...@@ -152,7 +152,7 @@ bool onelab::localNetworkClient::run() ...@@ -152,7 +152,7 @@ bool onelab::localNetworkClient::run()
if(_pid < 0 || (command.empty() && !CTX::instance()->solver.listen)) if(_pid < 0 || (command.empty() && !CTX::instance()->solver.listen))
break; break;
int stop = server->NonBlockingWait(sock, 0., 0.); int stop = server->NonBlockingWait(sock, 0.001, 0.);
if(stop || _pid < 0 || (command.empty() && !CTX::instance()->solver.listen)) if(stop || _pid < 0 || (command.empty() && !CTX::instance()->solver.listen))
break; break;
...@@ -267,6 +267,7 @@ bool onelab::localNetworkClient::run() ...@@ -267,6 +267,7 @@ bool onelab::localNetworkClient::run()
break; break;
case GmshSocket::GMSH_MERGE_FILE: case GmshSocket::GMSH_MERGE_FILE:
{ {
if(!FlGui::instance()->onelab->mergeAuto()) break;
int n = PView::list.size(); int n = PView::list.size();
for(int i = 0; i < n; i++){ for(int i = 0; i < n; i++){
if(PView::list[i]->getData()->getFileName().substr(0, 6) != "OneLab") if(PView::list[i]->getData()->getFileName().substr(0, 6) != "OneLab")
...@@ -840,9 +841,11 @@ onelabWindow::onelabWindow(int deltaFontSize) ...@@ -840,9 +841,11 @@ onelabWindow::onelabWindow(int deltaFontSize)
_gear->add("Reset database", 0, onelab_cb, (void*)"reset"); _gear->add("Reset database", 0, onelab_cb, (void*)"reset");
_gear->add("_Print database", 0, onelab_cb, (void*)"dump"); _gear->add("_Print database", 0, onelab_cb, (void*)"dump");
_gear->add("Remesh automatically", 0, 0, 0, FL_MENU_TOGGLE); _gear->add("Remesh automatically", 0, 0, 0, FL_MENU_TOGGLE);
_gear->add("Merge results automatically", 0, 0, 0, FL_MENU_TOGGLE);
_gear->add("_Hide new views", 0, 0, 0, FL_MENU_TOGGLE); _gear->add("_Hide new views", 0, 0, 0, FL_MENU_TOGGLE);
((Fl_Menu_Item*)_gear->menu())[2].set(); ((Fl_Menu_Item*)_gear->menu())[2].set();
((Fl_Menu_Item*)_gear->menu())[3].clear(); ((Fl_Menu_Item*)_gear->menu())[3].set();
((Fl_Menu_Item*)_gear->menu())[4].clear();
_gearFrozenMenuSize = _gear->menu()->size(); _gearFrozenMenuSize = _gear->menu()->size();
Fl_Box *resbox = new Fl_Box(WB, WB, Fl_Box *resbox = new Fl_Box(WB, WB,
...@@ -1001,23 +1004,27 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu ...@@ -1001,23 +1004,27 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu
_butt[1]->activate(); _butt[1]->activate();
_butt[1]->label("Compute"); _butt[1]->label("Compute");
_butt[1]->callback(onelab_cb, (void*)"compute"); _butt[1]->callback(onelab_cb, (void*)"compute");
_gear->activate(); for(int i = 0; i < _gear->menu()->size(); i++)
((Fl_Menu_Item*)_gear->menu())[i].activate();
} }
else if(butt1 == "stop"){ else if(butt1 == "stop"){
_butt[1]->activate(); _butt[1]->activate();
_butt[1]->label("Stop"); _butt[1]->label("Stop");
_butt[1]->callback(onelab_cb, (void*)"stop"); _butt[1]->callback(onelab_cb, (void*)"stop");
_gear->deactivate(); for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
else if(butt1 == "kill"){ else if(butt1 == "kill"){
_butt[1]->activate(); _butt[1]->activate();
_butt[1]->label("Kill"); _butt[1]->label("Kill");
_butt[1]->callback(onelab_cb, (void*)"kill"); _butt[1]->callback(onelab_cb, (void*)"kill");
_gear->deactivate(); for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
else{ else{
_butt[1]->deactivate(); _butt[1]->deactivate();
_gear->deactivate(); for(int i = 0; i < _gear->menu()->size(); i++)
if(i < 1 || i > 4) ((Fl_Menu_Item*)_gear->menu())[i].deactivate();
} }
} }
......
...@@ -40,7 +40,8 @@ class onelabWindow{ ...@@ -40,7 +40,8 @@ class onelabWindow{
void show(){ _win->show(); } void show(){ _win->show(); }
int shown(){ return _win->shown(); } int shown(){ return _win->shown(); }
int meshAuto(){ return _gear->menu()[2].value(); } int meshAuto(){ return _gear->menu()[2].value(); }
int hideNewViews(){ return _gear->menu()[3].value(); } int mergeAuto(){ return _gear->menu()[3].value(); }
int hideNewViews(){ return _gear->menu()[4].value(); }
std::string getPath(Fl_Tree_Item *item) std::string getPath(Fl_Tree_Item *item)
{ {
char path[1024]; char path[1024];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment