LINUX.ORG.RU

Сообщения lsv

 

c++, блокировка boost::shared_mutex

Форум — Development

Имеем два варианта заблокировать шаред мьютекс. Поток блокирует мьютекс на запись, а основной поток пытается получить блокировку на чтение.

1. пробуем заблокировать через try_lock. всегда res==true

#include <boost/thread/shared_mutex.hpp>
#include <mutex>

boost::shared_mutex shared_mtx;
std::mutex mtx;

void thread_fn()
{
	shared_mtx.lock_upgrade();
	mtx.unlock();
	while (true) {
	}
}

void main() {
	mtx.lock();
	std::thread t(thread_fn);
	bool res=shared_mtx.try_lock_shared();
	t.join();
}
2. пытаемся заблокировать с ограничением по времени. тут res==false
#include <boost/thread/shared_mutex.hpp>
#include <mutex>

boost::shared_mutex shared_mtx;
std::mutex mtx;

void thread_fn()
{
	shared_mtx.lock_upgrade();
	mtx.unlock();
	while (true) {
	}
}

void main() {
	mtx.lock();
	std::thread t(thread_fn);
	bool res=shared_mtx.timed_lock(boost::get_system_time() + boost::posix_time::milliseconds(10)); 
	t.join();
}

так и должно быть или это баг такой?

 ,

lsv
()

перегрузка виртуальных функций.

Форум — Development

есть вот такой код:

#include<iostream>

class BaseClass
{
public:
	virtual void f(int a, int b);
	virtual void f(float e, float f, int a, int b) =0;
};


void BaseClass::f(int a, int b) {
	return this->f( 0, 0, a, b);
}


class MyClass : public BaseClass
{
public:
	virtual void f(float e, float f, int a, int b) override {
		std::cout << "MyStorage" << std::endl;
	}
};
int main(int argc, char* argv[]) {
	MyClass *ms = new MyClass();
	ms->f(0, 10);
	return 0;
}

и ошибка компиляции

  In function 'int main(int, char**)': 
27:13: error: no matching function for call to 'MyClass::f(int, int)' 
27:13: note: candidate is:
21:15: note: virtual void MyClass::f(float, float, int, int) 21:15: note: candidate expects 4 arguments, 2 provided

а если вызывать так:

	BaseClass *ms = new MyClass();
	ms->f(0, 10);

то все работает. а почему?

 

lsv
()

Каким программам не нужны аналоги?

Форум — Talks

Часто видно, как появляется новые текстовый редактор, IDE, оконный менеджер, mp3 плеер, IM менеджер и все как один похожи друг на друга. А какой софт, по вашему мнению не нуждается в аналогах, поскольку альтернатив море+ маленький стакан?

lsv
()

способы создания инфраструктуры для «облаков»

Форум — Development

Есть такая задача: существует несколько групп, в каждую группу может входить несколько серверов. Необходимо добиться выполнения следующих пунктов:

1) Автоматическое нахождение новых групп другими группами

2) Автоматическое нахождение новых серверов в группе

3) Возможность горячего резервирования

Какую технологию (кросс платформенную) можете предложить?

P.S. Да, это богатство должно еще и на window 2003 и старше работать уметь.

lsv
()

hp-62 и двойная видеокарта

Форум — Desktop

У меня ноут hp-g62. У него две видюхи ATI и INTEL. на старых ядрах (2.6.32) работает все ок. но при обновлении или при установке новых дистров с ядром 2.6.38 и выше вылетает с ошибкой. лог привести не могу, поскольку системе даже не удается загрузиться. но судя по логам на экране ошибка при загрузке модуля radeon. пробовал блокировать его при запуске, но проблему это не решает. Подскажите кто что может.

lsv
()

sscanf_s x64

Форум — Development

Есть вот такой код на C:

short d=0,m=0,y=0,h=0,min=0,sec=0;
sscanf_s(str,"%d.%d.%d %d:%d:%d",&y,&m,&d,&h,&min,&sec); 

На 32 разрядной системе, при сканировании строки «2000.00.00 00:00:00» компилятор (тот, что поставляется с vs2010) выдает ошибку, что стек возле переменной sec нарушен. В чем проблема?

p.s. при замене short на unsigned int работает нормально. при замене на DWORD ошибка проявляется вновь.

P.P.S. ошибка проявилась на 64 разрядной системе

lsv
()

xslt copy

Форум — Development

никак не пойму, что делает этот кусок

<xsl:template match=«node() | @*»>
   <xsl:copy>
      <xsl:apply-templates select=«node() | @*»/>
   </xsl:copy>
</xsl:template>
и сам принцип работы copy

lsv
()

[GTK#] [Gdk.Pixbuf] foreach pixel

Форум — Development

Есть вот такой код:

unsafe{
	var width=workImage.Width;
	var height=workImage.Height;
	
        for(int y=0;y<height;y++)
		for(int x=0;x<width;x++){
			byte*p=((byte*)workImage.Pixels)+height*y+x;
			*p=0;
		}

переменная workImage имеет тип Gdk.Pixbuf. По идее, как только мы в объект image1 класса Gtk.Image передадим объект workImage:

 Gtk.Image image1;
 ...
 image1.Pixbuf=workImage

то должно быть отрисовано черное изображение, но на деле оно черное лишь процентов на 25. Может кто подскажет, где я ошибся?

lsv
()

Новости о git,hg,bzr и компании.

Форум — Linux-org-ru

Может я что пропустил, но все рпавно спрошу: почему не публикуются новости о выходе новых версий сабжа? Это теперь офтопик или просто никому не интересно?

lsv
()

Непоследовательный доступ к массиву данных.

Форум — Development

Есть набор измерений X1,X2,...,Xn. Таких измерений много (порядка 700 мб.). Каким образом проще всего обеспечить рандомный доступ к таким данным? Нужно адресоваться по ним, но хранить такое в ОЗУ нет возмодности (ее размер ~256-512). Есть ли готовые решения (либы, алгоритмы, методики).

lsv
()

[git] локальные правки.

Форум — Development

Есть git репозиторий. есть две ветки master и draft. В draft есть иpменения, которые не должны попасть в master. Как такое сделать?

Хотелось чего нить вроде этого.

 

lsv
()

adsl,telnet,shell

Форум — Development

Есть adsl модем. иногда зависает. чтобы его ребутнуть программно, то, один из вариантов, через телнет залогинится и выполнить команду reboot. Как бы это запихнуть в shell-script?

p.s. Вот пример сеанса:

~%=> telnet 192.168.1.1 10:01 pts/0
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
BCM96332 ADSL Router
Login: admin
Password:

reboot

...
...
...

lsv
()

Размеры репозитариев.

Форум — Desktop

Не нашел в сети, пожтому решил спросить тут: В каком дисрибутиве самый большой репозиторий ПО?

lsv
()

[latex][eskdx] Рамка.

Форум — Development

При использовании пакета eskdx печатается два вида рамок. Большая и меньше. Как сделать так, чтобы в рамке печаталось название текущей главы? Или предложите другой способ.

 ,

lsv
()

Непрерывные точки.

Форум — Development

Есть картинка. Имеются пиксили нужно нам цвета. Необходимо найти контуры таких площадей, внутри которых пиксели только заданного цвета. Нужен наиболее эффективный алгоритм.

lsv
()

[emacs] перенос слов

Форум — Development

Как сделать так, чтобы emacs делал переносы по словам, а не обравал слово в середине?

 

lsv
()

[scons] Имена файлов.

Форум — Development

Имеется проект со следующей стркуторой:
/
-Sconstruct
---Core
****|__Sconscript
Когда запускается "scons -С .." из дирректории Core, то он выводит имена относительно корня проекта. Как сделать так, чтобы он выводил относительно Core или абсолютные пути к файлам?

lsv
()

[regexp][python] Помогите!

Форум — Development

Есть исходный текст на С содержащий строки следующего вида:
/***
#include <assert.h>
*/

/***
Func1
assert(1+2==3)
*/
int func1(int a,int b)
{
return a+b
}


требуется составить регулярное выражение, для вытаскивания содержимого всех блоков между /*** и */.
использую python модуль re.

 ,

lsv
()

Latex-колонтитулы

Форум — Development

Необходимо поставить в нижнем колонтитуле, по правому краю текст. Как это сделать?

lsv
()

emacs,cedet,tabbar

Форум — Development

Использовал tabber для отображения вкладок, но после подключения cedet верхняя строка с вкладками пропала. конйиги взял с сйта Alex Ott. Не подскажите, как это исправить?

lsv
()

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