C :: Implement Mutex Lock Using Atomic Hardware Instruction

Mar 25, 2014

Consider how to implement a mutex lock using an atomic hardware instruction. Assume that the following structure defining the mutex lock is available:

Code:

typedef struct {
int available;
}
lock; (available == 0)

indicates that the lock is available, and a value of 1 indicates that the lock is unavailable. Using this struct, illustrate how the following functions can be implemented using the test and set() and compare and swap() instructions:

void acquire(lock *mutex)
void release(lock *mutex)

Be sure to include any initialization that may be necessary.

View 2 Replies


ADVERTISEMENT

C :: How To Apply Mutex Lock On Shared Memory

Jul 11, 2014

I was trying to put mutex lock on shared memory but my code is not working. What I want is that if some process is putting something on shared memory segment, other process should not be able to access that segment. For testing , I create a server program which put data in shared memory and client program which access the data.

To test it, I put break point after:

pthread_mutex_lock(&(init_lock));

But I see that client program was able to access shared memory.

Below is code:

Server: Code: pthread_mutex_t init_lock = PTHREAD_MUTEX_INITIALIZER;
main()
{
char c;

[Code].....

View 1 Replies View Related

C++ :: How To Implement IDIV Instruction In GCC Assembler

Aug 22, 2013

I have problems when implementing the IDIV Instruction in gcc assembler, the program has compiled ok, but when executing function that imparts the asm codes which contained the IDIV instruction the error box immediately appeared announcing that it should terminates the program quickly.

The following is the complete listing of the program that I just been working on it:

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
signed long divider(signed long num, signed long divisor);
int main(int argc, char* argv[]) {
signed long dn0,dn1,dn2;

[code]....

I compiled it with DevCpp 4.9.9.2, and I had tried on CodeBlocks, in CodeBlocks I made used the int64_t type but still it could not works more..

View 6 Replies View Related

C :: Structure Padding To 16 Bytes For Use With Atomic Instructions

Jun 30, 2013

I am using atomic instructions on x64 and variables so used must be 16 byte aligned.

I use a number of structures where their members are so operated upon.

The structures accordingly needs must be 16 byte aligned and padded - their internal members must be on 16 byte boundaries and, crucially, there must be tail padding to a 16 byte boundary, so I can allocate arrays of these structures and use pointer math to iterate. (I am naturally using aligned malloc).

The problem I am finding is that it is not apparent to me how to achieve this end. Here below we have a test structure (currently I'm working with the latest Amazon Linux GCC, 4.6.3, on x64);

Code:
#define LFDS700_ALIGN_DOUBLE_POINTER 16
#define LFDS700_ALIGN(alignment) __attribute__( (aligned(alignment)) )
LFDS700_ALIGN(LFDS700_ALIGN_DOUBLE_POINTER) struct test_element
{
struct lfds700_freelist_element

[Code] ....

I allocate an array of test elements, thus;

Code:
te_array = abstraction_aligned_malloc( sizeof(struct test_element) * 100000, LFDS700_ALIGN_DOUBLE_POINTER );

The problem manifest is that sizeof(struct test_element) is 40 bytes! So the second element does not begin on a 16 byte boundary and we all fall down. Printing the addresses of the first element in the test element array, I see the following;

Code:
(gdb) print *ts->te_array
$2 = {fe = {next = {0x7fffec0008d0, 0x2}, user_data = 0x7fffdc0008d0}, thread_number = 3, datum = 0}
(gdb) print sizeof(struct test_element)
$3 = 40
(gdb) print &ts->te_array->fe.next

[Code] ....

So we see fe->next is the first element and so is correctly aligned curtsey of aligned malloc, where fe->next is 16 bytes, fe->user_data is correctly aligned, but then te->thread_number is misaligned and te->datum is given eight bytes rather than four, leaving us in the end without correct tail padding to a 16 byte boundary.

So, what gives? how *am* I supposed to indicate to the compiler it must pad structures to 16 byte boundaries?

View 8 Replies View Related

C++ :: Find Valence Electrons From Atomic Number

Jun 8, 2014

Finding valence electrons from atomic number in c++...

View 3 Replies View Related

C++ :: Mathematics Instruction Using Random?

Oct 23, 2013

i have some mathematics instruction to resolve

|z - c| =< r and|z - w| =< d

Because i want just one number , i used randomise

Code:
mini =min((d-w),(c-r));
maxi=max((d+w),(r+c));
z=mini + (rand()%(maxii - minii));

It give me random number but when i use it to calculate another

Code:
f=sqrt(pow(d,2)-pow((z-w),2));

It give me error because many times the "z"is very height

so i get negative inter the sqrt.how i resolve this problem ? shall i add another limit to the Z?

View 3 Replies View Related

C++ :: Where Mutex Is Stored In Windows

Jan 17, 2013

I want to know how mutex is working in process synchronization. Where these mutexes are stored in memory how another process know about this mutex?

If two different mutexes are having same name what will happen?

View 6 Replies View Related

C++ :: Mutex In Critical Section

Mar 1, 2013

If any exception occurs in critical section code then what sort of issue which we see in terms of synchronization objects?

Before and after the critical section code, Mutex is locked and unlocked. But if any exception occurs then the waiting thread will be waiting for resource to be freed as Mutex is not unlocked due to the exception.

View 5 Replies View Related

C++ :: G++ 4.7.2 Error - Mutex In Namespace STD Does Not Name A Type

Mar 11, 2013

I've verified this on ubuntu 12.10 and on windows/mingw, and found that g++ version 4.7.2 seems to have broken thread/mutex support.

View 11 Replies View Related

C :: Crypt File With XOR Instruction - Fread / Fwrite Segmentation Fault

Jan 21, 2015

I try to crypt file with XOR instruction, by always receive segmentation fault. What's wrong with it?

Code:
#include <stdio.h>
main() {
FILE *fin,*fout;
char buff[40];
int a=0x11;
int i=0;

[Code] ....

View 4 Replies View Related

C :: How To Define The Lock Detect

Feb 24, 2013

It is my first time in use lock detect so i didn't now how to start.

how to define the lock detect?

View 4 Replies View Related

C/C++ :: Lock Knob - Function To Tell If Going Clockwise Or CCW

Aug 30, 2014

For a larger program I need a way to tell if a "lock knob" is going clockwise or counterclockwise. So below, I have my MoveLock function (That our teacher actually gave us to use) that reads inputs from the arrow keys and displays them. But what I need is to be able to count each time its moved in the correct direction and to reset the count it if it has gone in the other. Right now I'm just testing if it's going clockwise. I thought to solve this by resetting the count if it was less than the returned value from MoveLock (which is a count to compare to the former). Currently, it only displays the current position and the count as -1 or 1.

#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;
HANDLE inKeys = GetStdHandle(STD_INPUT_HANDLE);
HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);

[code]....

View 2 Replies View Related

C# :: Windows Phone 8.1 Auto Lock Screen Code

Mar 6, 2015

Auto lock screen coding for windows phone 8.1.

View 2 Replies View Related

C/C++ :: Implementation Of Stress Test For Lock Free Queue

Aug 31, 2014

I am trying to compare performance of different lock-free queues, therefore, I want to create a stress test - which includes pushing/popping user-defined pre-built objects to and from the queue. My question is how can perform the stress test with pushing and popping objects instead of pointers to object like I have done in my code. What is the different in terms of performance of pushing/popping objects Vs. pushing/popping pointers.

#include <cstdlib>
#include <stdio.h>
#include <string>

[Code]....

View 3 Replies View Related

C# :: Custom Dialog Resizer With Aspect Lock CheckBox

Jan 20, 2015

I am working on a paint program (already quite well developed) and I have a 'Resize' option in my Menu. When pressed it activates a custom dialog for resizing the image with 2 numeric up/downs to adjust width and height. It all works perfectly. But I want to include an 'Aspect Lock' checkBox like a professional program would have. It should immediately change both values as you adjust either one.

Here's where I am totally stumped! Of course I have tried and tried various codes, but nothing works properly. My values jump erratically or won't change at all. I wonder if trying to change the value of one numeric up/down while inside the code block for changing the value of the other one has got them screwing with each other somehow. Any example code that could accomplish what I'm trying to do?

View 5 Replies View Related

C Sharp :: Lock Thread Till Execution Is Finished?

Jun 26, 2012

I have a event called dataTree_AfterSelect in which I have some code which I want to execute as atomic operation like this:

protected void dataTree_AfterSelect(event params)
{
code that should not be disturbed
}  

What is happening now is, I am able to select another node of tree & in that case another execution of above function starts causing a garbled result.

What I want is, user should be able to click on tree node but execution of code block should only start after first execution is totally over.

View 4 Replies View Related

Visual C++ :: How To Lock In A Single Skeleton In Microsoft Kinect SDK V 1.7

Mar 25, 2013

I m trying to lock a single skeleton using Microsoft Kinect SDK v 1.7 . My requirements are

•First lock a single skeleton.
•Check the tracking state of the of the locked skeleton.
•If the tracking state of the locked skeleton is NOT Tracked,then
• ----->check for the next closest skeleton
•----->lock this skeleton.

How do I do this using vc++2010. The code which i tried is given below.

Code:
TrackSingleSkeleton(NUI_SKELETON_FRAME* pSkeletonFrame) {
DWORD dwTrackingIDs[NUI_SKELETON_MAX_TRACKED_COUNT]={0, 0};
m_pNuiSensor->NuiSkeletonTrackingEnable(m_hNextSkeletonEvent,NUI_SKELETON_TRACKING_FLAG_TITLE_SETS_TRACKED_SKELETONS);

[Code]....

View 1 Replies View Related

C :: How To Implement Vectorization

May 20, 2013

I'm trying to learn how to implement vectorization. Lets say I have this an array like this.

Code: int Array[10] = { 3,4,5,3,4,5,6,7,8,9};

If I traverse through the array and preform some simple calculation like adding numbers, how would I go about vectorizing this feat? For example if I want to add numbers, .

An example, add element at index 5,6,7 to element with index 1.

Code:
0 1 2 3 4 5 6 7 8 9 --- index
3,4,5,2,8,2,3,5,1,2 --- ints

View 6 Replies View Related

C :: Implement Setjmp For Function?

Feb 23, 2015

I am trying to implement setjmp for functions.

Code:
#include <setjmp.h>
#include <stdio.h>
jmp_buf arr[3];
void DISP(int x , int i)

[Code]....

Could I possibly use malloc to allocate memory for the stack too?

View 1 Replies View Related

C :: How To Implement A Generic Command

Jun 11, 2013

I have to make a prgrama using the C programming language that is able to read several lines of commands entered by the user and interpret it as a command to run.

I have to implement the following command:

a) Command generic - program should be able to read any one command and execute the same command on the operating system through primitives for implementing generic processes (eg "ls-l/etc").

View 1 Replies View Related

C :: How To Implement Two Dimensional Arrays

Feb 10, 2013

Code:
char str[40][40];
int number = 7;

for (int i=0;i<number;i++){
printf("enter %d th string::",i+1);
scanf("%s",str[i]);
}

Above, I have a little snippet of a code that I'm trying to figure out. I don't really understand how to implement 2d arrays in C that well. But, I mostly want to know is how and where the strings are being stored, especially with the code below.

Code:
for (int i=0;i<number;i++){
printf("enter %d th string::",i+1);
scanf("%s",str[i]);
}

I know that it's asking the user to enter strings, which will be stored into the 2d array. I just don't understand how it's being stored. Will it be placed in the 1st column or 2nd row or something?

View 1 Replies View Related

C++ :: Implement Flocking Algorithm

Mar 25, 2013

I'm trying to implement the flocking algorithm in C++. I've tried to implement it myself by making all the particles 'home-in' on the player. When 2 particles then collide within their larger bounding boxes they home-in to each other. And when the 2 particles are actually touching they repel each other until they are outside of their bounding boxes and find another particle to home-into.when I run my application the particles all home into the player and come to a stand still along the Y-axis above the player.

All the particles in question are stored in a Vector, with a pos and velocity.

for(int i = 0; i < swarm.size(); i++) {
for (int j = 0; j < swarm.size(); j++) {
if (swarm.at(i)->getParticleModel()->getPosition().x < gameObjects.front()->getParticleModel()->getPosition().x) {
if (swarm.at(i)->getParticleModel()->getTouching() == false)

[code]....

View 5 Replies View Related

C++ :: How To Implement Insert And Heapify

Nov 2, 2014

I implement copy constructor for priority queue like this, is it right?

PRIORITY_QUEUE<T>::PRIORITY_QUEUE(const PRIORITY_QUEUE &aQueue)
{
this->maxSize = aQueue.maxSize;
this->items = new T [maxSize + 1];
this->rear = aQueue.rear;
for (int i = 0; i < aQueue.rear; i++)

[code]....

By the way, how to implement "insert" and "heapify" and in insert, when we insert an element we also heapify it?

View 2 Replies View Related

C# :: Unable To Implement A BrowserDialog

Apr 15, 2014

Ok so i am coding in WPF i was coding just fine and im trying to implement a browserDialog

Here is the class

The issue i am having is in the DialogResult.Cancel This is the issue i receive 'System.Nullable<bool>' does not contain a definition for 'Cancel' and no extension method 'Cancel' accepting a first argument of type 'System.Nullable<bool>' could be found (are you missing a using directive or an assembly reference.

private void ArmaPathSelect_Click(object sender, RoutedEventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog() == DialogResult.Cancel)
return;
this.Path_Arma3.Text = folderBrowserDialog.SelectedPath;
}

View 1 Replies View Related

C++ :: How To Implement DirectX Structures

Dec 12, 2013

I do this because I want to transform the .x format into xml... The "frame" data structure can contain other frames, and a name for the frame and a transformation. For example:

Code:
struct frame {
std::string name;
Matrix transform;
std::vector<struct frame> child;
std::vector<struct frame> sibling;

[Code] ....

I know the above won't compile. But am I on the right track to implement data structures this way using linked lists? about directx, I'd like to ask is the .x format implemented with a tree structure rather than linked lists.

View 1 Replies View Related

C++ :: Trying To Implement Linked List Using Inheritance

Jan 5, 2014

Not inheriting properly and provide the corrected code if possible

Code:
#include <iostream>
using namespace std;
class Node {
protected:
int Data;

[Code] ....

View 4 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved