LINUX.ORG.RU

Сообщения Onito

 

Вопрос по bcd

Форум — Development

Всем привет, не подскажите где взять bcd.h, это класс двоично десятичной математики. Просто у меня его нет, а качать с инета его я не знаю правильное решение или нет, да и в инете много разных вариантов с одним названием, хз какой правильный.

Onito
()

Отношения потоков

Форум — Development

Всем привет, вот такой у меня вопрос: есть два потока, главный и подчинённый, главный назначает задачу подчинённому таким образом: в очередь задач (о подробностях её реализации говорить не буду) записывает действие, потом разблокирует мьютекс и подчинённый поток прочитает задачу в очереди и начнёт её выполнение. Существует 3 варианта событий: 1) Случится событие из за которого главный должен будет немедленно пришлёпнуть подчинённого например отмена операции). Здесь соответствующая команда посылается (через очередь) подчинённому потоку и он сам принимает решение о завершении, в случае если он при этом зависает или слишком долго завершает себя главный поток просто его убивает. 2) Задача выполняется до конца, после чего подчинённый поток информирует (через очередь) о завершении задачи и главный поток блокирует через мьютекс подчинённый до появления новых задач. 3) в потоке возникла ошибка (исключение) о чём посылается запрос ( через очередь) и главный процесс принимает решение ( выполнить задачу заново, перезапустить поток, и тд.). Во первых прошу оценить такое общение между потоками через некую защищённую область обладающую допустим методами addMessage, getmessage. Во вторых во время выполнения задачи я не могу с помощью мьютекса блочить главный процесс так как в случае ошибки в подчинённом он зависнет навсегда и к тому же он должен прослушать сообщения из других каналов, ну так вот, чтобы он не жрал слишком много ресурсов и в тоже время выполнял свою функцию я использую usleep(10*1000) или sleep(10) так как приложение взаимодействует с пользователем то это нормальный «пинг». Так вот, мне тут пришла в голову мысль что это не самый нормальный способ усмирять аппетит главного потока скажем так, Что вы думаете о такой схеме взаимодействия?

P.S. Извиняюсь за много букв :)

Onito
()

создание config.h

Форум — Development

всем привет, мне нужно создать config.h для определения некоторых констант. Я нашел такой способ:

autoscan /*переименование файла confidure.scan в configure.in*/
autoheader
autoconf
./configure

последний вызов создаёт config.h в котором ничего полезного нет, не подскажите где посмотреть инфу по добавлению инфы в предыдущие файлы чтобы в итоге собрался нормальный config.h, в частности мне нужен макрос CPU_VENDOR_OS.

Onito
()

аппаратное ускорение в браузере

Форум — Desktop

Всем привет, ситуация такая: дебиан стейбл, chrome, без флеша, в настройках указано использовать аппаратное ускорение, но если запустить в браузере видео то проц грузится процентов на 60-70 а в системном мониторе показано что браузер запущен с флагами отключающими обработку данных с помощью гпу, вот список драйверов в системе: [ 14.685] (II) Module nouveau: vendor=«X.Org Foundation» [ 14.685] compiled for 1.12.4, module version = 1.0.1 [ 14.685] Module class: X.Org Video Driver -- [ 14.699] (II) Module vesa: vendor=«X.Org Foundation» [ 14.699] compiled for 1.12.1, module version = 2.3.1 [ 14.699] Module class: X.Org Video Driver

есть ли возможность не используя флеш и драйвер нвидии включить аппаратное ускорение?

Onito
()

Ошибка на стороне сервер

Форум — Development

Всем привет, подскажите почему в случае если я до завершения передачи принудительно закрою клиент то сервер выдаёт ошибку. При завершении процесса закрываются все его дескрипторы и тд. тоесть отсылает сигнал FIN серверу. Сервер в это время крутит циклично write() и видимо когда соединения больше нет вылетает так как его никто не предупредил, соответственно в таких случаях нужно както особо настраивать сервер или иначе создавать сокет а не просто сокет(аф_инет, сокет стрим) бинд листен асепт. я прав? :)

Если надо будет добавить код напишите об этом.

Onito
()

Зависает socket

Форум — Development

всем привет, ситуация у меня такая: при вызове функции connect зависает программа, собсна в программе ничё хитрого нет она стучится до яндекс серверf по 13 порту и ip 77.88.21.11 и по идее принимает некоторую строку, но это уже не важно так как зависает на вызове функции connect. Я искал в инете чтото подобное и как я понял проблема в том что у меня стоит роутер. Вопрос такой, в чём именно проблема? Если в роутере то как не изменяя программу настроить роутер( так как я думаю программа не должна зависить от способа организации сети на таком уровне ), а если надо изменять программу то что именно изменять. Вот листинг( с помощью выводу единичек я понял что проблема в коннекте :) ):

#include <iostream>
#include "unp.h"
#include "error.h"

using namespace std;

int main(int argc, char **argv)
{
    int sockfd, n;
    char recvline[MAXLINE+1];
    struct sockaddr_in servaddr;

    if(argc!=2)
        err_quit("usage: a.out <IPaddress>");

    if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 )
        err_sys("socket error");

    cout << 1 << endl;

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(13);
    if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
        err_quit("inet_pton error for %s", argv[1]);

    cout << 1 << endl;

    if(connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
        err_sys("connect error");

    cout << 1 << endl;

    while( (n = read(sockfd, recvline, MAXLINE)) > 0)
    {
        recvline[n] = 0;
        if(fputs(recvline, stdout) == EOF)
            err_sys("fputs error");
        cout << 1 << recvline << endl;
    }
    if(n<0)
        err_sys("read error");
    cout << recvline << endl;
    return 0;
}

P.S. Пример сделан из учебника У. Р. Стивенс - UNIX. Разработка сетевых приложений, 3-е изд. - 2007

Onito
()

Забавная утечка памяти

Форум — Desktop

Всем привет, я заметил странную закономерность: каждый раз если открывать/закрывать хромиум в debian, то объём занятой памяти после закрытия будет ровно на 5мб больше чем до открытия. И я так раз 10 попробовал и в итоге объём занятой памяти увеличился на 50мб. Я бы понял еслиб он однократно увеличился, но почему каждый раз кто знает? :) вообще меня оно не особо волнует но теоретически система не может работать сколь угодно долго при такой тенденции :)

Onito
()

пароль от root

Форум — Linux-install

Всем привет, такой вот вопрос: в дебиан терминал суперпользователя спокойно принимает пароль от рут и всё работает, но когда дебиан просит установить обновления и ввести пароль от рут то пишет сбой аутентификации, причём apt-get update не помогает так как не обновляет ту прогу которую указывает программа обновления, подскажите как поступить в этой ситуации

Onito
()

Управление потоками с использованием pthread

Форум — Development

Всем привет, я использую QT Creator в качестве иде и вот исходники проекта:

про файл:

TEMPLATE = app
CONFIG += console
CONFIG -= qt
LIBS += -lpthread

SOURCES += main.cpp

мейн файл:

#include <iostream>
#include <pthread.h>

int d=0;

using namespace std;

void* task1(void* X)
{
    int OldState, OldType;

    pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &OldState);
        pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &OldType);

    for(int Count=1; Count<100; Count++)
    {
        d++;
        cout << "В потоке А: " << Count << '\n';
    }
    pthread_testcancel();
}

int main()
{
    pthread_t Threads;
    void* Status;

    pthread_create(&(Threads), NULL, task1, NULL);

    pthread_cancel(Threads);

        pthread_join(Threads, &Status);
        if(Status==PTHREAD_CANCELED)
        {
            cout << "Поток " << " аннулирован" << endl;
        }
        else
        {
            cout << "Поток " << " продолжает выполнение" << endl;
        }
    cout << "d: " << d << endl;
    return 0;
}
проблема вот в чём: при вызове pthread_cancel(Threads); вывод программы такой: В потоке А: 1. И всё, больше ничего, если закомментить этот вызов то всё работает как и задумано(цикл производит 99 итераций), подскажите пожалуйста в чём тут может быть проблема.

 ,

Onito
()

RSS подписка на новые темы