- 1
- 2
- 3
- 4
if( state != !val )
{
state = !val;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+62
if( state != !val )
{
state = !val;
}
Переключение. Обе переменные булевские.
+51
void main() {
system("color 04");
setlocale(LC_ALL, "rus");
if (start == false) {
logos();
loading();
start = true;
system("cls");
}
if (get_hero_s == false) {
get_hero();
get_hero_s = true;
}
menu();
map();
if (go_went_gone == 1) {
system("cls");
cout << "\nВы напали на оборотня в тёмном лесу\n";
loading();
Sleep(1400);
fight("werewolf");
go_went_gone = 0;
main();
}
else if (go_went_gone == 3) {
system("cls");
cout << "\nВы напали на лучника в мрачном поле\n";
loading();
Sleep(1400);
fight("archer");
go_went_gone = 0;
main();
}
if (go_went_gone == 2) {
system("cls");
cout << "\nВы напали на гоблина в тёмном лесу\n";
loading();
Sleep(1400);
fight("werewolf");
go_went_gone = 0;
main();
}
else if (go_went_gone == 4) {
system("cls");
cout << "\nВы напали на лучника на костяного лучника в подземелье \n";
loading();
Sleep(1400);
fight("archer");
go_went_gone = 0;
main();
}
Рекурсия мейна, и это курсовая работа!!
−119
Процедура ДействияФормыДействие5(Кнопка)
ТекущиеДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ТекПометкаУдаления = ТекущиеДанные.Ссылка.ПометкаУдаления;
КонтрагентОбъект = ТекущиеДанные.Ссылка.ПолучитьОбъект();
КонтрагентОбъект.ПометкаУдаления = Не ТекПометкаУдаления;
Попытка
КонтрагентОбъект.записать();
Исключение
Сообщить("Не удалось " + ?(ТекПометкаУдаления, "снять", "установить") + " пометку удаления.");
КонецПопытки;
КонецПроцедуры
На форме списка справочника "Контрагенты" добавлена кнопка со значком "непосредственное удаление". А это её обработчик.
НАХРЕНА???
+126
// На самом деле это пока только псевдокод. Real code will be on C/C++
//Lock-free non blocking and anatomic operation only if IP was changed
// IN SHARED MEMORY
non_atomic_in_shmem bad_IP_flag_non_atomic_in_shmem[64][16]; // in real code it will be uint64_t array[16] and bits operations with it
some_ip_class IPs_non_atomic_in_shmem[64][16] //
std::atomic<uint64_t> version_holder_atomic_in_shmem[64][16]; // it is debatable "whether to do it the Atomic" but for reinsurance
// IN WRITER PROCESS
void worker_reassign_IP_by_num(new_IP, back_end_server_ID, num)
if bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num] // in real code this check will be not here but will have same sense
version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become NOT even
__sync_synchronize(); //TODO may be we can use something better here ?
IPs_non_atomic_in_shmem[back_end_server_ID][num] = new_IP //it copy assignment
__sync_synchronize(); //TODO may be we can use something better here ?
version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become even
__sync_synchronize(); //TODO may be we can use something better here ?
bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num] = 0
// IN READER PROCESS
some_ip_class get_valid_ip_by_num(back_end_server_ID,num){
//TODO version_holder is atomic for now, may we do it non atomic? I think YES. Are any arguments in opposites?
// Instead of atomic can we possible use volatile?
uint64_t version_before = version_holder_atomic_in_shmem[back_end_server_ID][num] //it is atomic copy assignment
//if (version_befor & 1) // is not even it will work too instead of checking flags
// but checking flags it is less expensive operation than checking version because the version var is atomic
if bad_IP_flag_non_atomic_in_shmem //
return 0;
some_ip_class ip = IPs_non_atomic_in_shmem[back_end_server_ID][num]
uint64_t version_after = version_holder_atomic_in_shmem[back_end_server_ID][num] // it is atomic copy assignment
if version_before != version_after // versions is not sames
// we may add extra check of version evenest but it will cost us 1 slow atomic operation and excessively
//OR (version_after & 1) //or versions is not even ip is not correct
return 0
return ip
}
some_ip_class get_valid_ip(back_end_server_ID)
while(time_not_expaired) {
for (n=0; n<16; n++){
some_ip_class ip = get_valid_ip_by_num(back_end_server_ID, n)
if ip
return ip
}
//"it will never happened" "if it happened and time expired do something but it is problems on the back end servers site"
//”it is similar situation with situation when back end server just down ”
}
return 0 // or some server_down_ip ;)
some_ip_class check_or_get_new_ip( curent_ip, back_end_server_ID, num)
if NOT bad_IP_flag_non_atomic_in_shmem
if current_ip == shmem_array_of_IP_non_atomic[back_end_server_ID][num] // maybe need copy but I think it's not necessary
return current_ip
Задача: есть reader(ы) Это процессы 20 - 30 -64, которые обращаются к web-серверу. У web-сервера может быть несколько ip (не больше 16). Переодически (1 раз в ~30 секунд) пара (1-2) IP может отвалиться и вместо них может появится пара 1-2 новых. reader обнаружив bad IP выставляет флаг bad_IP_flag. Writer (только 1 единственный процесс не reader) Переодически (1 раз в ~1 сек) проверяет флаг, увидев bad_IP_flag запускает DNS-lookup который длиться примерно (30mks - 1s). Обновляет массив ip Readers при попытке соединиться проверяют не стал ли IP плохим если стал пробуют другой из массива Но суть не в этом Суть в том как безопасно работать с shared memory? Где что не так в предложенной задумке?
+157
function getMinQueueOrdering()
{
$sql="SELECT MAX(ordering)
FROM priceloaddata_queue";
.........
}
нет слов.
+168
define("OUTPUT_DIR_CSV", "kokoko/kukarek/files" . DIRECTORY_SEPARATOR);
+161
public function set_debug($fparam) {
$this->set_debug_mode($fparam);
}
protected function set_debug_mode($fparam) {
$this->set_localization_debug_mode($fparam);
}
private function set_localization_debug_mode($fparam) {
$this->set_localization_debug_mode_log_service($fparam);
}
private function set_localization_debug_mode_log_service($fparam) {
$conf = //...тут уже что-то делает, наконец-то
}
Я понимаю, если бы они просто были алиасами... Но почему protected/private?
+85
int[] pirates = {
R.drawable.final_0001, R.drawable.final_0002, R.drawable.final_0003, R.drawable.final_0004,
R.drawable.final_0005, R.drawable.final_0006, R.drawable.final_0007, R.drawable.final_0008,
R.drawable.final_0009, R.drawable.final_0010, R.drawable.final_0011, R.drawable.final_0012,
R.drawable.final_0013, R.drawable.final_0014, R.drawable.final_0015, R.drawable.final_0016,
R.drawable.final_0017, R.drawable.final_0018, R.drawable.final_0019, R.drawable.final_0020,
R.drawable.final_0021, R.drawable.final_0022, R.drawable.final_0023, R.drawable.final_0024,
R.drawable.final_0025, R.drawable.final_0026, R.drawable.final_0027, R.drawable.final_0028,
R.drawable.final_0029, R.drawable.final_0030, R.drawable.final_0031, R.drawable.final_0032,
R.drawable.final_0033, R.drawable.final_0034, R.drawable.final_0035, R.drawable.final_0036,
R.drawable.final_0037, R.drawable.final_0038, R.drawable.final_0039, R.drawable.final_0040,
R.drawable.final_0041, R.drawable.final_0042, R.drawable.final_0043, R.drawable.final_0044,
R.drawable.final_0045, R.drawable.final_0046, R.drawable.final_0047, R.drawable.final_0048,
R.drawable.final_0049, R.drawable.final_0050, R.drawable.final_0051, R.drawable.final_0052,
R.drawable.final_0053, R.drawable.final_0054, R.drawable.final_0065, R.drawable.final_0056,
R.drawable.final_0057, R.drawable.final_0058, R.drawable.final_0059, R.drawable.final_0060,
R.drawable.final_0061, R.drawable.final_0062, R.drawable.final_0063, R.drawable.final_0064,
R.drawable.final_0065, R.drawable.final_0066, R.drawable.final_0067, R.drawable.final_0068,
R.drawable.final_0069, R.drawable.final_0070, R.drawable.final_0071, R.drawable.final_0072,
R.drawable.final_0073, R.drawable.final_0074, R.drawable.final_0075, R.drawable.final_0076,
R.drawable.final_0077, R.drawable.final_0078, R.drawable.final_0079, R.drawable.final_0080,
R.drawable.final_0081, R.drawable.final_0082, R.drawable.final_0083, R.drawable.final_0084,
R.drawable.final_0085, R.drawable.final_0086, R.drawable.final_0087, R.drawable.final_0088,
R.drawable.final_0089, R.drawable.final_0090, R.drawable.final_0091, R.drawable.final_0092,
R.drawable.final_0093, R.drawable.final_0094, R.drawable.final_0095, R.drawable.final_0096,
R.drawable.final_0097, R.drawable.final_0098, R.drawable.final_0099, R.drawable.final_0100,
R.drawable.final_0101, R.drawable.final_0102, R.drawable.final_0103, R.drawable.final_0104,
R.drawable.final_0105, R.drawable.final_0106, R.drawable.final_0107, R.drawable.final_0108,
R.drawable.final_0109, R.drawable.final_0110, R.drawable.final_0111, R.drawable.final_0112,
R.drawable.final_0113, R.drawable.final_0114, R.drawable.final_0115, R.drawable.final_0116,
R.drawable.final_0117, R.drawable.final_0118, R.drawable.final_0119, R.drawable.final_0120
};
Погромист на Ондроид наговнокодил это...
+76
@Override
public void setAdapter(ListAdapter adapter) {
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(mDataObserver);
}
mAdapter = adapter;
mAdapter.registerDataSetObserver(mDataObserver);
}
Дебажу говнокод доставшийся в наследство и получаю NullPointerException
+130
Subroutine HBomb(x,ia,ib)
Dimension x(*)
c Generate some exeption...
x(ia*ib)=1.0
x(ia*(-ib))=1.0
x(1)=7.0/(ia+ib)
Return
End
Серьёзный квантовохимический пакет, между прочим.
Выше по течению этот кусок кода вызывали через call hbomb(x, 1000, -1000)