InfoDialog::InfoDialog(QWidget *parent, int user_id, int num) : QDialog(parent), ui(new Ui::InfoDialog) { ui->setupUi(this); setWindowTitle("我的借阅信息"); currentUserId = user_id; num_can_borrow = num; model = new QSqlRelationalTableModel(ui->tableView); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->setTable("borrowed_books"); model->setRelation(model->fieldIndex("book_id"), QSqlRelation("books", "id", "title")); model->setHeaderData(model->fieldIndex("book_id"), Qt::Horizontal, tr("名称")); model->setHeaderData(model->fieldIndex("start_time"), Qt::Horizontal, tr("借阅起始时间")); model->setHeaderData(model->fieldIndex("end_time"), Qt::Horizontal, tr("借阅到期时间")); ui->tableView->setModel(model); ui->tableView->setColumnHidden(model->fieldIndex("id"), true); ui->tableView->setColumnHidden(model->fieldIndex("user_id"), true); ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); idHiddenWidget = new QLineEdit(this); idHiddenWidget->setVisible(false); QDataWidgetMapper *mapper = new QDataWidgetMapper(this); mapper->setModel(model); mapper->addMapping(idHiddenWidget, model->fieldIndex("id")); connect(ui->tableView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), mapper, SLOT(setCurrentModelIndex(QModelIndex))); model->setFilter("user_id='" + QString::number(currentUserId) + "'"); model->select(); connect(ui->getbackButton, SIGNAL(clicked()), this, SLOT(getback())); connect(ui->confirmButton, SIGNAL(clicked()), this, SLOT(confirm())); }
void verifier(void* arg){ int i; int size; int res; int queue_index =0 ; while(!die_flag){ //Race of threads if(pthread_mutex_lock(&threadrace_lock) < 0){ perror("threadrace_lock"); exit(EXIT_FAILURE); } if(exit_status){ if(pthread_mutex_unlock(&threadrace_lock) < 0){ perror("threadrace_lock"); exit(EXIT_FAILURE); } break; } // for(i = 0; i < MATRIX_SIZE; ++i){ // memset(matrixA[i], 0, sizeof(float)*40*40); // memset(inversedA[i], 0, sizeof(float)*40*40); // } if(DEBUG) printf("thread: %u in critical section in verifier module \n", (unsigned int) pthread_self()); // printf("size: %d\n", size); /* receive matrix A and A^ from */ size = get_from_module1(); ++queue_index; if(DEBUG) printf("queue index: %d\n", queue_index); /* send A and A^ to multiplier */ if(!exit_status){ send_to_multiplier(size); getback(size); res = isIden(size); if(res == 1){ printf("This is an invertable matrix\n\n"); }else if(res == -1){ printf("This is NOT invertable\n\n"); } } /* receive multiplied matrix and check whether unit matrix or not */ //Race of threads if(pthread_mutex_unlock(&threadrace_lock) < 0){ perror("threadrace_unlock"); exit(EXIT_FAILURE); } // for(i = 0; i < MATRIX_SIZE; ++i){ // memset(matrixA[i], 0, sizeof(float)*40*40); // memset(inversedA[i], 0, sizeof(float)*40*40); // } if(exit_status){ break; } } printf("d thread: %u out of critical section \n", (unsigned int) pthread_self()); }